Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将所选内容设置为WPF树视图中新添加的项目_Wpf_Treeview_Selecteditem - Fatal编程技术网

将所选内容设置为WPF树视图中新添加的项目

将所选内容设置为WPF树视图中新添加的项目,wpf,treeview,selecteditem,Wpf,Treeview,Selecteditem,我使用TreeView让用户更容易地浏览复杂的数据结构。我正在尝试向我的应用程序添加一个功能,以便我的用户可以通过单击工具栏上的按钮向datastucture添加新项目。此新项目有3个级别,每个级别有1个项目。我想选择最低级别的项目 添加数据不是问题,我只是向集合中添加一个新项,该集合绑定到特定的TreeView。我可以通过手动浏览TreeView来查找该项目,因此我知道添加是有效的。现在,我想通过编程设置新项目的选择。因此,用户可以立即更改元素中的默认设置 我做了一些测试,发现设置选择是通过以

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

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

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

var obj = TreeView.ItemContainerGenerator
              .ContainerFromItem(selectedObject) as TreeViewItem;
obj.IsSelected = true;
我尝试在Add方法之后直接添加此代码。adding函数返回新对象并将其放置在selectedObject中。Add方法将a添加到
可观测集合
,从而引发相应的事件

但是,obj在添加之后总是直接为空

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

我想我可能遗漏了什么。有没有人知道如何将新项添加到绑定集合中,并在
TreeView
中选择该项?

您可能希望阅读Josh Smith关于在WPF中使用TreeView的文章。他演示了如何使用IsSelected属性,该属性可以使用MVVM模式轻松地适应您的需要