我在树视图中选择TreeViewItem
时遇到问题。当我在树视图中选择一个项目时,我的以下代码返回null
。
我做错了什么?
TreeViewItem item = e.OriginalSource as TreeViewItem;
答案 0 :(得分:1)
根据您的最新图片,e.OriginalSource
是TreeView
。当您像这样投射e.OriginalSource
时:
TreeViewItem item = e.OriginalSource as TreeViewItem;
... item
始终为null
。这是因为您的类型广播无法将e.OriginalSource
转换为您想要的类型。如果你这么强硬,那么:
TreeViewItem item = (TreeViewItem)e.OriginalSource;
你会得到CastException
来解释原因。
所以你需要做的就是投射到这样的正确类型:
TreeViewItem tree = e.OriginalSource as TreeView; // I am a tree view :-)
...然后从tree.Items
中选择您需要的项目。
答案 1 :(得分:0)
e.Source
和e.OriginalSource
是指TreeView
而不是TreeViewItem
所选。
尝试此操作以获取所选项目:
TreeViewItem item = e.NewValue as TreeViewItem;
或者这是为了获得之前选择的项目:
TreeViewItem item = e.OldValue as TreeViewItem;