将WPF TreeView与通用viewmodel绑定
我有一个usercontrol,其中包含一个TreeView控件。我使用的是MVVM模式。 我希望在不同的窗口中重用此用户控件,每次都将usercontrol绑定到不同的datacontext将WPF TreeView与通用viewmodel绑定,wpf,mvvm,treeview,Wpf,Mvvm,Treeview,我有一个usercontrol,其中包含一个TreeView控件。我使用的是MVVM模式。 我希望在不同的窗口中重用此用户控件,每次都将usercontrol绑定到不同的datacontext <UserControl Name="UserControl1".......> .............. <TreeView ItemSource={Binding ...}...> <Hierarch
<UserControl Name="UserControl1".......>
..............
<TreeView ItemSource={Binding ...}...>
<HierarchicalDataTemplate...........\>
</TreeView>
..............
</UserControl>
..............
..............
在窗口1中,我想将列表
绑定到树视图
在窗口2中,我想将列表
绑定到树视图
是否可以为此usercontrol编写通用ViewModel,以便将不同类型的数据绑定到TreeView??
如果我的问题不明白,请务必让我知道。如果我没有看错,您有一个要重用的UserControl,将其DataContext设置为应用程序不同部分中的不同ViewModel 因此,您当然可以将不同类型的列表指定为TreeView的ItemsSource,但是:
- 列表属性必须在每个ViewModel中一致命名
- 您需要为希望传递到控件xaml中的TreeView中的每种类型描述一个DataTemplate(或HierarchycalDataTemplate)
- 如果您希望在集合中添加/删除项目,并希望在UI中看到这些更改,您可能会发现绑定到
比绑定到可观察集合
带来更大的回报列表