gpt4 book ai didi

c# - 标签属性的值消失

转载 作者:太空宇宙 更新时间:2023-11-03 17:37:00 25 4
gpt4 key购买 nike

我正忙于一个简单的应用程序。它读取 xml 并将信息放在 TreeView 中。

我通过创建 TreeNode 并嵌套它们来做到这一点,最后返回根树节点。因为我想在选择树节点时显示一些额外的信息,所以我将这些信息放在了 TreeNode 的 tag 属性中。这样,我应该能够在选择节点时检索信息。

但是当我尝试检索 Tag 属性中的信息时,它显示 value = null。

这是我填写标签的代码。这是一个用于递归读取 XML dom 的函数。 treeNode 是给这个函数的一个参数。

if (treeNode.Tag == null)
{
treeNode.Tag = new List<AttributePair>();
}
(treeNode.Tag as List<AttributePair>).Add(new AttributePair(currentNode.Name, currentNode.Value));

这是选择树节点的事件
private void tvXML_AfterSelect(object sender, TreeViewEventArgs e)
{
if (tvXML.SelectedNode.Tag != null)
{
}
if (e.Node.Tag != null)
{
}
}

这两个值都评估为 null。我怎么解决这个问题?

最佳答案

您发布的代码应该按原样工作。您的代码中的其他内容,即您未在此处发布的代码,导致此代码中断。可能是清除标签,也可能是标签上设置的数据绑定(bind)等。

在没有看到你所有的代码的情况下,我能做的最好的就是猜测并帮助你隔离问题。

这是我要做的:setup Visual Studio to allow stepping into the .NET framework source code with the debugger .然后,在 TreeNode.Tag 属性的 setter 上设置断点。将代码中的标记设置为 AttributePair 列表后,查看它何时再次设置。断点将命中,您将查看堆栈跟踪并查看究竟是什么清除了您的 Tag 属性。

关于c# - 标签属性的值消失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1292694/

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