所以我有一个wpf c#应用程序,它从文件中获取信息,将它们加载到列表中,然后将列表加载到treeView上,它还有按钮来编辑,删除,添加信息,我是如何编辑的列表中的信息,然后用编辑的列表信息覆盖文本文件,然后有一个更新按钮用于更新treeView,当我更新treeView我删除列表中的所有内容,然后重新加载列表与更新的文本然后清除treeView,然后将列表数据重新加载到treeView中。现在它在我的更新中崩溃的原因是在这一行 treeView1.Items.Clear();
然后它带我到我的treeView1_SelectedItemChanged代码中的这一行string selectName = ((TreeViewItem)(treeView1.SelectedItem)).Header.ToString();
,所以我理解为什么它崩溃,有没有办法让它在我清除之前取消选择树视图中的任何内容,因此它不会尝试清除所选项目。谢谢。名称和详细信息都是列表。
答案 0 :(得分:1)
treeView1.SelectedItem
将为null,因为您刚刚清除了树视图。
你应该问问自己,尝试在树视图中获取项目的标题是什么意义,它的项目刚刚被清除,并说明为什么在程序中的那一行调用该行。
没有更多的背景,我无法帮助你。
编辑:抱歉,我误解了你的要求。是的,您可以清除选择,但这也会导致选择更改事件触发。你应该做的是在继续之前检查事件处理程序中的SelectedItem不为null。
答案 1 :(得分:1)
尝试添加一个在清除树视图时跳闸的标志。然后将你的动作事件正文代码放入if中,检查标志