gpt4 book ai didi

wpf - 将 WPF TreeView 与通用 View 模型绑定(bind)

转载 作者:行者123 更新时间:2023-12-01 09:26:27 25 4
gpt4 key购买 nike

我有一个包含 TreeView 控件的用户控件。我正在使用 MVVM 模式。我想在不同的窗口中重用这个用户控件,每次都将用户控件绑定(bind)到不同的数据上下文。

   <UserControl Name="UserControl1".......>

..............

<TreeView ItemSource={Binding ...}...>


<HierarchicalDataTemplate...........\>

</TreeView>

..............

</UserControl>

在窗口 1 中,我想绑定(bind)一个 List<ObjectA>到 TreeView。

在窗口 2 中,我想绑定(bind)一个 List<ObjectB>到 TreeView。

是否可以为此用户控件编写一个通用的 ViewModel,以便我可以将不同类型的数据绑定(bind)到 TreeView? 如果我的问题不明白,请告诉我。

最佳答案

如果我没看错的话,你有一个你希望重用的 UserControl,在你的应用程序的不同部分将它的 DataContext 设置为不同的 ViewModel...

既然如此,是的,您当然可以将不同类型的列表指定为 TreeView 的 ItemsSource,但是:

  • 列表属性在每个 ViewModel 中的命名必须一致
  • 您需要为您希望在控件的 xaml 中传递到 TreeView 的每种类型描述一个 DataTemplate(或 HierarchicalDataTemplate)
  • 您可能会发现绑定(bind)到 ObservableCollection<T>List<T> 带来更大的返回如果您希望向集合中添加项目/从集合中删除项目,并希望看到这些更改反射(reflect)在 UI 中

希望这有帮助:)

关于wpf - 将 WPF TreeView 与通用 View 模型绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1895874/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com