wpf - 将选择设置为 WPF TreeView 中新添加的 Item

标签 wpf treeview selecteditem

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

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

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

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

我尝试在添加方法之后直接添加此代码。添加函数返回新对象并将其放入 selectedObject 中。 Add-方法将 a 添加到 ObservableCollection 中,从而引发适当的事件。

但是,添加后 obj 始终为 null。

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

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

最佳答案

您可能想阅读this article作者:Josh Smith,介绍如何在 WPF 中使用 TreeView 。他演示了如何使用 IsSelected 属性,该属性可以通过 MVVM 模式轻松适应您的需求。

关于wpf - 将选择设置为 WPF TreeView 中新添加的 Item,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1118298/

相关文章:

jquery - 如何使用 jQuery 在 Bootstrap 中预选 <select> 列表项

java - 无法在我的 ListView 上的自定义 ArrayAdapter 中获取所选项目索引

c# - WPF标签下的可点击按钮

wpf - listBox.ItemContainerGenerator.ContainerFromItem() 将 null 返回到添加到列表框中的 NEW 项

c# - 为什么 Windows.Forms.TreeView 没有 SelectedNodeChanged 事件?

jQuery 树结构

javascript - 如何在 Fuel UX TreeView 中预选项目?

c# - 如何使用 jquery 更改 listItem 上的事件类

wpf:如何在运行时添加超链接?

c# - 从 BitmapSource 复制到 WriteableBitmap