WPF Treeview项目选择问题

时间:2009-06-25 04:25:37

标签: c# wpf treeview

alt text

我在我的应用程序中有Treeview(如上所示),我已经收集了它... 现在问题是每当我扩展 Colorodo 默认情况下 Aspen 应该被选中,这意味着每当我扩展第一个项目时Node应该被选中..

任何想法/建议请

2 个答案:

答案 0 :(得分:6)

不幸的是,正如我确定您已经发现的那样,您不能将treeViewInstance.SelectedItem属性设置为只读属性。

从内存中,每个TreeViewItem都有一个可以设置的IsSelected属性。您尝试侦听项目的展开/折叠,并可能设置此属性。没有自己尝试,我不知道它是否是a)一个好的解决方案b)如果它甚至可以工作。

要获取作为集合中项目容器的TreeViewItem,请使用

treeViewInstance.ItemContainerGenerator.ContainerFromItem(yourDataItem) as TreeViewItem;

另一个想法(我会这样做)是使用ListBox / ListView并伪造分层视图。创建一个视图模型控制器和项目,包装您的数据,并自己管理。如果您想了解更多信息,请发表评论,我会挖掘一些示例来帮助您。

HTH,

丹尼斯

答案 1 :(得分:0)

有两个apporches选择你喜欢的。 i)探索ItemTemplageSelector,不确定但是可以使用它。

另一方面,在树扩展事件或鼠标捕获事件中获取当前根节点,然后选择其第一个具有索引的子节点,如rootNode.child [0] ...将此设置为选择True或Isfocused和perfom操作点击它,你会觉得用户觉得它被选中了。