我正忙着一个简单的应用程序.它读取xml并将信息放在树视图中.
我这样做是通过创建TreeNodes并嵌套它们,并最终返回根treenode.因为我想在选择treenode时显示一些额外的信息,所以我将信息放在TreeNode的tag属性中.通过这种方式,我应该能够在选择节点时检索信息.
但是当我尝试检索Tag属性中的信息时,它表示值= 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));
Run Code Online (Sandbox Code Playgroud)
这是选择treenode的事件
private void tvXML_AfterSelect(object sender, TreeViewEventArgs e)
{
if (tvXML.SelectedNode.Tag != null)
{
}
if (e.Node.Tag != null)
{
}
}
Run Code Online (Sandbox Code Playgroud)
两个值都计算为null.我怎么解决这个问题?
您发布的代码应该按原样运行.您的代码中的其他内容,您未在此处发布的代码,会导致此问题中断.它可能是清除Tag,它可能是标签上的数据绑定集等.
在没有看到所有代码的情况下,我能做的最好的事情就是猜测并帮助您找出问题所在.
这就是我要做的事情:设置Visual Studio以允许使用调试器进入.NET框架源代码.然后,在TreeNode.Tag属性的setter上设置断点.将代码中的标记设置为AttributePair列表后,请查看何时再次设置该标记.断点将命中,您将查看堆栈跟踪并查看清除Tag属性的确切内容.
| 归档时间: |
|
| 查看次数: |
1769 次 |
| 最近记录: |