WPF:KeyValuePair的TreeView <int,string =“”> </int,>

时间:2013-06-07 21:50:14

标签: c# wpf mvvm

我有一个带有treeview控件的WPF应用程序。当我实现此方法来解析字符串时,我可以找到一个树视图。 现在我想为每个路径分配id,例如“NetworkControl.AlternateIndexText.Value”,将拥有自己的id和“NetworkControl.AddressData.MessageOriginatorID.Value”, 将有另一个与之关联的ID。

这里有一个KeyValuePair列表。我想要做的是解析字符串并创建一个具有相关Id的树节点。

      public List<MessageElement> GetRequestTreeNodes()
      {
        var nodes = new List<KeyValuePair<int, string>>();

        nodes.Add(new KeyValuePair<int, string>(1, "NetworkControl.AlternateIndexText.Value"));
        nodes.Add(new KeyValuePair<int, string>(1, "NetworkControl.AddressData.DestinationID"));
        nodes.Add(new KeyValuePair<int, string>(1, "NetworkControl.AddressData.MessageOriginatorID.Value"));

     }

这是我在解析字符串和Id的地方。我可以使用名称创建节点,但是如何传递ID以便我可以识别每个路径

     public List<MessageElement> BuildTree(List<KeyValuePair<int, string>>   strings)
    {
        return (
          from s in strings
          let split = s.Value.Split('.')
          group s by s.Value.Split('.')[0] into g

          select new MessageElement
          {
              ID = ?
              Name = g.Key,
              Children = BuildTree(
                from s in g
                where s.Value.Length > g.Key.Length + 1
                select s.Value.Substring(g.Key.Length + 1))
          }
          ).ToList();

      }


        public List<MessageElement> GetRequestTreeNodes()
      {
        var nodes = new List<KeyValuePair<int, string>>();

        nodes.Add(new KeyValuePair<int, string>(1,  "NetworkControl.AlternateIndexText.Value"));
        nodes.Add(new KeyValuePair<int, string>(1, "NetworkControl.AddressData.DestinationID"));
        nodes.Add(new KeyValuePair<int, string>(1, "NetworkControl.AddressData.MessageOriginatorID.Value"));

     }
有人能帮帮我吗? 我不想说任何借口,但我对LINQ和WPF都是新手 谢谢大家的帮助

0 个答案:

没有答案