我正在使用TreeView
让用户更轻松地导航复杂的数据结构。我正在尝试向我的应用程序添加一项功能,以便我的用户可以通过单击工具栏上的按钮将新项目添加到数据结构中。这个新项目有3个级别,每个级别有1个项目。我想选择最低级别的项目。
添加数据不是问题,我只是将新项添加到绑定到特定的TreeView
的集合中。我可以手动浏览TreeView
来查找项目,所以我知道添加工作。现在,我想以编程方式设置新项目的选择。因此,用户可以立即更改元素中的默认设置。
我已经做了一些测试,我发现设置选择是通过以下方式完成的:
var obj = TreeView.ItemContainerGenerator
.ContainerFromItem(selectedObject) as TreeViewItem;
obj.IsSelected = true;
我尝试在Add-method之后直接添加此代码。 adds函数返回新对象并将其放在 selectedObject 中。 Add-method将ObservableCollection
添加到TreeView
,从而引发相应的事件。
但是,obj在添加后总是直接为null。
我已尝试在LayoutUpdated事件中设置选择,但在这种情况下,早期代码中的 obj 变量将再次为null。
我想我可能会在这里遗漏一些东西。有没有人知道如何将新项目添加到有界集合并在{{1}}中选择该项目?
答案 0 :(得分:2)
您可能希望Josh Smith在WPF中使用树视图阅读this article。他演示了如何使用可以根据需要轻松调整的IsSelected属性,使用MVVM模式。