大家好我想问我有一个类似下面的属性:
public class VLANSPropertyClass
{
public string vname { get; set; }
public int S_No { get; set; }
public string vid { get; set; }
public string ip { get; set; }
public string vports { get; set; }
}
我创建了一个ObservableCollection
,如下所示:
public ObservableCollection<VLANSPropertyClass> vlan { get; set; }
vlan = new ObservableCollection<VLANSPropertyClass>();
我在数据网格中添加所有这些值:
void AddVlans()
{
var serial = new VLANSPropertyClass();
serial.S_No = vlan.Count + 1;
Console.WriteLine(serial.S_No);
serial.vname = VlanName;
Console.WriteLine(serial.vname);
serial.vid = VlanID;
Console.WriteLine(serial.vid);
serial.ip = VlanIP1 + "." + VlanIP2 + "." + VlanIP3 + "." + VlanIP4;
Console.WriteLine(serial.ip);
serial.vports = SelectedVlanPort;
vlan.Add(serial);
}
显示如下图所示:
现在我想要浏览每一行并阅读其值。我试过以下但没有工作
foreach(VLANSPropertyClass v in vlan)
{
Console.WriteLine(v);
Console.WriteLine();
}
请告诉我从ObservableCollection / Datagrid读取值的可能方法。任何帮助都会非常明显。
答案 0 :(得分:0)
您可以将课程更改为此...
public class VLANSPropertyClass
{
public string vname { get; set; }
public int S_No { get; set; }
public string vid { get; set; }
public string ip { get; set; }
public string vports { get; set; }
public override string ToString()
{
return String.Format("Name: {0}, Serial {1}", vname, S_No);
}
}
此更改包括对ToString
方法的覆盖。只要框架需要您的类的字符串表示,就会调用它。
ToString是.NET Framework中的主要格式化方法。它 将对象转换为其字符串表示形式,以使其适合 用于显示。 (有关.NET中格式化支持的信息 框架,请参阅格式化类型。)
来源:http://msdn.microsoft.com/en-us/library/system.object.tostring.aspx
使用覆盖ToString
将允许您执行Console.WriteLine(v);
预期结果。
答案 1 :(得分:-1)
当您遍历ObservableCollection&lt;&gt;时,通过索引访问它会以字符串的形式返回集合的完整实例/项目,您现在需要使用索引或属性引用此字符串(以防用户定义) type(class))为了访问真实内容,在我的情况下,我这样做是为了访问集合项目的临时属性。
mess[mj_key][mn_key][0].Temp.ToString()
这里我有3个维度,暂时避免它,只需要理解0索引返回字符串对象,然后使用.Temp
访问温度希望它有帮助!