ツリービュー コントロールを備えた 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の両方に不慣れです。ご協力ありがとうございます