TreeView节点上的NullReferenceException取消选择

时间:2013-11-01 20:28:59

标签: c# wpf treeview selecteditemchanged

我的程序中有两个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.行。例外情况说:“对象引用未设置为对象的实例”。

这里出了什么问题,我该如何解决?谢谢。

*注意:我只想指出其他树不会发生这种情况。

1 个答案:

答案 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;
}