我的应用程序中有Treeview(如上所示),我已将它与集合绑定(bind)... 现在的问题是,每当我扩展 Colorodo 时,默认情况下 Aspen 应该被选中,这意味着每当我扩展第一个项目时,Node 应该被选中..
任何想法/建议请
最佳答案
不幸的是,我相信您已经发现,您无法设置 treeViewInstance.SelectedItem
属性,因为它是只读的。
根据内存,每个 TreeViewItem
都有一个您可以设置的 IsSelected
属性。您尝试监听项目的展开/折叠,并可能设置此属性。如果没有亲自尝试过,我不知道这是否是 a) 一个好的解决方案 b) 是否有效。
要获取作为集合中项目的容器的TreeViewItem
,请使用
treeViewInstance.ItemContainerGenerator.ContainerFromItem(yourDataItem) as TreeViewItem;
另一个想法(我会这样做)是使用 ListBox/ListView 并伪造分层 View 。创建 View 模型 Controller 和项目,包装数据,并自行管理这一切。如果您想了解更多信息,请发表评论,我将举出一些示例来提供帮助。
HTH,
丹尼斯
关于c# - WPF Treeview项目选择问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1042182/