0

ツリービュー コントロールを備えた WPF アプリケーションがあります。このメソッドを実装して文字列を解析すると、ツリービューを見つけることができます。たとえば、「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の両方に不慣れです。ご協力ありがとうございます

4

0 に答える 0