我在我的应用程序中有Treeview(如上所示),我已经收集了它... 现在问题是每当我扩展 Colorodo 默认情况下 Aspen 应该被选中,这意味着每当我扩展第一个项目时Node应该被选中..
任何想法/建议请
答案 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操作点击它,你会觉得用户觉得它被选中了。