Problem with TreeNodeCollection.ContainsKey()
本文关键字:ContainsKey TreeNodeCollection with Problem | 更新日期: 2023-09-27 17:57:02
我正在为一个与家庭概念一起工作的应用程序创建一个插件。每个家庭都属于一个家庭类别,每个家庭都包含家庭符号。像这样漂亮的树结构:
- 家庭类别(门)
- 家庭间(外门)
- 家庭符号 (门 2000x1000)
- 家庭符号 (门 2000x900)
- 家庭(车库门)
- 家庭符号 (门 2000x2000)
- 家庭符号 (门 2100x2000)
- 家庭间(外门)
- 家庭类别 (Windows)
- 家庭房(单人窗)
- 族符号(窗口 1000x1400)
- 族符号(窗口 800x1400)
- 家庭间(双层窗户)
- 族符号(窗口 2000x1400)
- 族符号(窗口 2100x1400)
- 家庭房(单人窗)
现在,我正在尝试构建一个表示该结构的树视图。我有一个 Family 对象的列表,每个对象都有一个 FamilyCategory 属性。我正在尝试确定是否已经存在具有家庭类别名称的树节点,如果存在,我正在尝试将家族添加到该节点。如果该类别的节点不存在,我会创建一个新节点并在那里添加族。不幸的是,下面的代码总是评估类别存在为假。
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);
}
}
我做错了什么?
尝试替换它:
categoryNode = new TreeNode(familyCategoryName);
treeView.Nodes.Add(categoryNode);
通过这个:
categoryNode = new TreeNode(familyCategoryName);
categoryNode.Name = familyCategoryName;
treeView.Nodes.Add(categoryNode);
(TreeNodeCollection.ContainsKey()
搜索Name
属性,而不是Text
属性)