我在我的程序中有兩個TreeViews
以相同的方式處理SelectedItemChanged
。問題是一個工作正常,另一個拋出NullReferenceException
。唯一的例外獲取當一個節點被取消的一棵樹上扔...TreeView節點上的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節點被選擇
- 下,在表現良好的樹中的節點被選擇
-A然後在問題樹的代碼隱藏線上拋出:ViewModel.Tree.SelectedItem = data.
。例外說:「對象引用未設置爲對象的實例」。
這裏怎麼回事,我該如何解決?謝謝。
*注意:我只想指出,這不會發生在另一棵樹上。
您已經驗證的DataContext在不好的情況下實際上是DatabaseViewModel的實例?在引發異常的行上設置斷點,然後您可以檢查DataContext。 – foosburger