数据在WPF树视图结合的SelectedItem [英] Data binding to SelectedItem in a WPF Treeview
问题描述
我如何可以检索在WPF的树视图中选择的项目?我想这样做在XAML,因为我想绑定。
您可能会认为这是的SelectedItem
但显然这不存在是只读的,因此无法使用。
这是我想做的事:
<树视图的ItemsSource ={绑定路径= Model.Clusters}
的ItemTemplate ={StaticResource的ClusterTemplate}
的SelectedItem ={绑定路径= Model.SelectedCluster}/>
我要绑定的的SelectedItem
在我的模型的属性。
但是,这给我的错误:
的SelectedItem属性是只读的,并且不能从标记设置。
块引用>编辑:
好吧,这是我解决了这个方式:< TreeView控件
的ItemsSource ={绑定路径= Model.Clusters}
的ItemTemplate ={StaticResource的HoofdCLusterTemplate}
SelectedItemChanged =TreeView_OnSelectedItemChanged/>在我的XAML的codebehindfile:
私人无效TreeView_OnSelectedItemChanged(对象发件人,RoutedPropertyChangedEventArgs<对象> E)
{
Model.SelectedCluster =(集群)e.NewValue;
}
解决方案该属性存在:<一href=\"http://msdn.microsoft.com/en-us/library/system.windows.controls.treeview.selecteditem.aspx\">TreeView.SelectedItem
但它是只读的,所以你无法通过具有约束力的分配它,只有找回
How can I retrieve the item that is selected in a WPF-treeview? I want to do this in XAML, because I want to bind it.
You might think that it is
SelectedItem
but apparently thatdoes not existis readonly and therefore unusable.This is what I want to do:
<TreeView ItemsSource="{Binding Path=Model.Clusters}" ItemTemplate="{StaticResource ClusterTemplate}" SelectedItem="{Binding Path=Model.SelectedCluster}" />
I want to bind the
SelectedItem
to a property on my Model.But this gives me the error:
'SelectedItem' property is read-only and cannot be set from markup.
Edit: Ok, this is the way that I solved this:
<TreeView ItemsSource="{Binding Path=Model.Clusters}" ItemTemplate="{StaticResource HoofdCLusterTemplate}" SelectedItemChanged="TreeView_OnSelectedItemChanged" />
and in the codebehindfile of my xaml:
private void TreeView_OnSelectedItemChanged(object sender, RoutedPropertyChangedEventArgs<object> e) { Model.SelectedCluster = (Cluster)e.NewValue; }
解决方案This property exists : TreeView.SelectedItem
But it is readonly, so you cannot assign it through a binding, only retrieve it
这篇关于数据在WPF树视图结合的SelectedItem的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!