2

我正在使用 aTreeView让用户更轻松地浏览复杂的数据结构。我正在尝试向我的应用程序添加一项功能,以便我的用户可以通过单击工具栏上的按钮将新项目添加到数据结构中。这个新项目有 3 个级别,每个级别有 1 个项目。我想选择最低级别的项目。

添加数据不是问题,我只是将一个新项目添加到绑定到TreeView特定的集合中。我可以通过手动浏览来查找项目TreeView,所以我知道添加工作。现在,我想以编程方式设置新项目的选择。因此用户可以立即更改元素中的默认设置。

我做了一些测试,发现设置选择是通过以下方式完成的:

var obj = TreeView.ItemContainerGenerator
              .ContainerFromItem(selectedObject) as TreeViewItem;
obj.IsSelected = true;

我尝试在我的 Add-method 之后直接添加此代码。添加函数返回新对象并将其放置在selectedObject中。Add-method 将 a 添加到 anObservableCollection中,这会引发相应的事件。

但是,obj 在添加后总是直接为 null。

我尝试在 LayoutUpdated 事件中设置选择,但在这种情况下,早期代码中的obj变量总是再次为空。

我想我可能在这里遗漏了一些东西。有没有人知道如何将新项目添加到有界集合并在 中选择该项目TreeView

4

1 回答 1

2

您可能想阅读Josh Smith 关于在 WPF 中使用树视图的这篇文章。他演示了如何使用 MVVM 模式来使用可以轻松适应您的需求的 IsSelected 属性。

于 2009-07-13T09:18:40.703 回答