我有一个带有树视图控件的 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 都很陌生,谢谢大家的帮助