0

TreeViews私のプログラムにSelectedItemChangedは、同じ方法で処理するものが 2 つあります。問題は、一方が正常に動作し、もう一方がNullReferenceException. ノードの選択が解除されると、ツリーの 1 つで例外がスローされます...

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 に答える