我正在为一个适用于家庭概念的应用程序创建一个插件。 每个族都属于一个FamilyCategory,每个族都包含FamilySymbols。 一个很好的树结构:
现在我正在尝试构建一个表示该结构的TreeView。我有一个Family对象列表,每个对象都有一个FamilyCategory属性。我正在尝试确定是否已存在具有FamilyCategory名称的TreeNode,如果确实存在,我正在尝试将Family添加到该节点。如果该类别的节点不存在,我创建一个新节点并在那里添加该族。 不幸的是,下面的代码总是将categoryExists评估为false。
foreach (Family family in families)
{
string familyCategoryName = family.FamilyCategory.Name;
bool categoryExists = treeView.Nodes.ContainsKey(familyCategoryName);
if (categoryExists)
{
categoryNode = treeView.Nodes[familyCategoryName];
}
else
{
categoryNode = new TreeNode(familyCategoryName);
treeView.Nodes.Add(categoryNode);
}
TreeNode familyNode = new TreeNode(family.Name);
categoryNode.Nodes.Add(familyNode);
foreach (FamilySymbol familySymbol in family.Symbols)
{
familyNode.Nodes.Add(familySymbol.Name);
}
}
我做错了什么?
答案 0 :(得分:9)
尝试替换它:
categoryNode = new TreeNode(familyCategoryName);
treeView.Nodes.Add(categoryNode);
由此:
categoryNode = new TreeNode(familyCategoryName);
categoryNode.Name = familyCategoryName;
treeView.Nodes.Add(categoryNode);
(TreeNodeCollection.ContainsKey()
搜索Name
属性,而不是Text
属性