相关疑难解决方法(0)

数据绑定到WPF Treeview中的SelectedItem

如何检索在WPF树视图中选择的项目?我想在XAML中这样做,因为我想绑定它.

你可能会认为它SelectedItem显然是不存在的只是readonly因此无法使用.

这就是我想要做的:

<TreeView ItemsSource="{Binding Path=Model.Clusters}" 
            ItemTemplate="{StaticResource ClusterTemplate}"
            SelectedItem="{Binding Path=Model.SelectedCluster}" />
Run Code Online (Sandbox Code Playgroud)

我想绑定SelectedItem到我的模型上的属性.

但这给了我错误:

'SelectedItem'属性是只读的,不能通过标记设置.

编辑: 好的,这是我解决这个问题的方式:

<TreeView
          ItemsSource="{Binding Path=Model.Clusters}" 
          ItemTemplate="{StaticResource HoofdCLusterTemplate}"
          SelectedItemChanged="TreeView_OnSelectedItemChanged" />
Run Code Online (Sandbox Code Playgroud)

在我的xaml的codebehindfile中:

private void TreeView_OnSelectedItemChanged(object sender, RoutedPropertyChangedEventArgs<object> e)
{
    Model.SelectedCluster = (Cluster)e.NewValue;
}
Run Code Online (Sandbox Code Playgroud)

c# wpf treeview selecteditem mvvm

231
推荐指数
9
解决办法
16万
查看次数

WPF MVVM TreeView SelectedItem

这不可能是这么困难.WPF中的TreeView不允许您设置SelectedItem,表示该属性是ReadOnly.我有TreeView填充,甚至在数据绑定集合更改时更新.

我只需要知道选择了什么项目.我正在使用MVVM,因此没有代码隐藏或变量来引用树视图.这是我找到的唯一解决方案,但它是一个明显的黑客,它在XAML中创建了另一个元素,它使用ElementName绑定将自己设置为树视图选定项,然后您必须绑定Viewmodel.关于此问题还有其他几个问题,但没有给出其他有效的解决方案.

我已经看到了这个问题,但是使用给出的答案给出了编译错误,由于某种原因,我无法将混合sdk System.Windows.Interactivity的引用添加到我的项目中.它说"未知的错误系统.窗口没有被预加载",我还没有想出如何通过它.

对于奖励积分:为什么微软会让这个元素的SelectedItem属性ReadOnly?

wpf treeview mvvm

31
推荐指数
4
解决办法
6万
查看次数

如何绑定到WPF TreeView的SelectedItem属性?

我在这里调整了TreeView Control示例项目,以便与Entity Framework对象一起使用.它运行得很漂亮,但是像许多其他人一样,尝试更新基于ParentViewModels的SelectedItem更改的集合或属性时,我也无法弥合理解的差距.

我在MVVM工作,希望我的代码隐藏免受任何混乱.作为一个初学者,我喜欢实现PropertyChanged通知的清洁,但由于它们没有固定的"SelectedItem"属性来绑定TreeView,我无法像往常一样提升我的PropertyChanged事件ListBox.

我的ChildViewModel上也有一个SelectedItem属性(实际上成功捕获了isSelected = true的对象)(参见HB对这个问题的回答).我也有我的ParentViewModel这势必我的看法(见@马丁Liversage的职位类型ChildViewModel的的SelectedItem 这里).我不能让他们同步.

请帮助我了解如何将SelectedItemChildViewModel 的属性传递给我的ParentViewModel.我没有将我的TreeView绑定到a CollectionView,所以我无法获取CurrentItem视图集合.

我正在处理的viewmodel集合非常查询,所以我现在还没有包含任何代码.请让我知道清楚需要什么.

treeview selecteditem mvvm inotifypropertychanged selecteditemchanged

3
推荐指数
1
解决办法
1万
查看次数