Исключение NullReferenceException на узле TreeView

У меня два 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;
}

Это в основном то, что происходит:

- Узел в дереве проблем выбран

-Далее выбран узел в дереве с хорошим поведением

NullReferenceException затем бросается на линию: ViewModel.Tree.SelectedItem = data. в коде позади проблемного дерева. Исключение говорит: "Ссылка на объект не установлена ​​на экземпляр объекта".

Что здесь не так и как я могу это исправить? Спасибо.

* Примечание: я просто хотел бы отметить, что это не происходит для другого дерева.

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;
}
Другие вопросы по тегам