0

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

这基本上是发生了什么:

- 选择问题树中的一个节点

-接下来,选择表现良好的树中的一个节点

-ANullReferenceException然后被抛出:ViewModel.Tree.SelectedItem = data.在问题树的代码隐藏中。异常说:“对象引用未设置为对象的实例”。

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

*注意:我只想指出,另一棵树不会发生这种情况。

4

1 回答 1

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;
}
于 2013-11-01T20:36:36.220 回答