我的程序中有两个TreeViews
以同样的方式处理SelectedItemChanged
。问题是一个工作正常,另一个抛出NullReferenceException
。当取消选择节点时,会在其中一个树中抛出异常......
如何为代码隐藏中的两个树处理SelectedItemChanged
:
//How *ViewModel* is declared...
public DatabaseViewModel ViewModel { get { return DataContext as DatabaseViewModel; } }
//Gets selected item in TreeView
private void Tree_SelectedItemChanged(object sender, RoutedPropertyChangedEventArgs<object> e)
{
var data = e.NewValue as TreeModel;
ViewModel.Tree.SelectedItem = data;
}
这基本上就是这样:
- 选择问题树中的节点
- 接下来,选择行为良好的树中的节点
-A NullReferenceException
然后抛出问题树的代码隐藏中的ViewModel.Tree.SelectedItem = data.
行。例外情况说:“对象引用未设置为对象的实例”。
这里出了什么问题,我该如何解决?谢谢。
*注意:我只想指出其他树不会发生这种情况。
答案 0 :(得分:1)
试试这个:
//Gets selected item in TreeView
private void Tree_SelectedItemChanged(object sender,RoutedPropertyChangedEventArgs<object> e)
{
var data = e.NewValue as TreeModel;
if(data!=null)
ViewModel.Tree.SelectedItem = data;
}