gpt4 book ai didi

c# - TreeNodeCollection.ContainsKey() 的问题

转载 作者:行者123 更新时间:2023-11-30 13:50:36 25 4
gpt4 key购买 nike

我正在为一个使用家庭概念的应用程序创建一个插件。每个 Family 都属于一个 FamilyCategory,每个 Family 都包含 FamilySymbols。像这样的漂亮树结构:

  • 家庭类别(门)
    • 家庭(外门)
      • FamilySymbol(门 2000x1000)
      • FamilySymbol(门 2000x900)
    • 家庭(车库门)
      • FamilySymbol(门 2000x2000)
      • FamilySymbol(门 2100x2000)
  • 家庭类别 (Windows)
    • 家庭(单窗口)
      • FamilySymbol(窗口 1000x1400)
      • FamilySymbol(窗口 800x1400)
    • 家庭(双窗)
      • FamilySymbol(窗口 2000x1400)
      • FamilySymbol(窗口 2100x1400)

现在我正在尝试构建一个代表该结构的 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);
}
}

我做错了什么?

最佳答案

尝试替换这个:

categoryNode = new TreeNode(familyCategoryName);
treeView.Nodes.Add(categoryNode);

通过这个:

categoryNode = new TreeNode(familyCategoryName);
categoryNode.Name = familyCategoryName;
treeView.Nodes.Add(categoryNode);

(TreeNodeCollection.ContainsKey() 搜索 Name 属性,而不是 Text 属性)

关于c# - TreeNodeCollection.ContainsKey() 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6078953/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com