繁体   English   中英

如何遍历Observable集合?

[英]How to iterate through Observable collection?

嗨,大家好,我想问一下我有一个具有以下属性的类:

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读取值的可能方法。任何帮助都是非常有意义的。

您可以将班级更改为此...

  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 Framework中格式支持的信息,请参阅格式类型。)

来源: http : //msdn.microsoft.com/zh-CN/library/system.object.tostring.aspx

使用ToString的重写将使您能够执行此Console.WriteLine(v); 预期的结果。

当您遍历ObservableCollection <>时,通过索引访问它会以字符串形式返回集合的完整实例/项目,现在您需要使用索引或属性来引用此字符串(以防用户定义类型(类) )以访问真实内容,在我的情况下,我这样做是为了访问集合混乱中的一项的temp属性。

mess[mj_key][mn_key][0].Temp.ToString()

在这里我有3个维度,现在就避免使用它,只要了解0索引会返回字符串对象,然后使用.Temp访问温度

希望能帮助到你!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM