我的 ViewModel 应该有视图或 ViewModel 的 ObservableCollection 吗?

2024-02-10

我试图理解使用时的基本 MVVM 设计方法项目控制通过绑定它数据模板 to 可观察集合在视图模型上。

我见过绑定到 ObservableCollections 的示例strings, Views, and 视图模型.

绑定到字符串似乎只是为了demos,它是对“包含 View 集合的 ViewModel 包含 ViewModel 集合”那WPF的威力似乎真的显现出来了。

对于那些精通 MVVM 模式的人来说,将 ItemsControl、ListView、ListBox 绑定到 ViewModel 中的集合的标准方法是什么?我正在寻找这样的经验建议:

  • 始终使用 ObservableCollection<...> 而从不使用 List<...> 因为...
  • 比 ItemsControl 更好地显示集合的是......
  • 为了让过滤在 ViewModel 中工作而不是在代码隐藏中工作,请使用...
  • 当...时使用视图集合,当...时使用 ViewModel 集合
  • 90% 的时间我创建一个 ItemsControl 并将其绑定到具有自己的 ViewModel 的视图的 ObservableCollection...

我会使用 ViewModel 的 ObservableCollection ,原因如下:

  • ObservableCollection 已经具有可用于在修改时发出信号的事件(例如,当在集合中添加/删除项目时)。
  • 我们位于 ViewModel“层”,因此它提供了更清晰的分离,让 ViewModel 包含 ViewModel 的集合而不是视图
  • 如果需要修改或获取集合中项目的数据,如果项目是 ViewModel,则可以更轻松地修改/访问该数据(如果它们是视图,您将经常转换视图的 DataContext 或访问其 UI 元素)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

我的 ViewModel 应该有视图或 ViewModel 的 ObservableCollection 吗? 的相关文章

随机推荐