我的ViewModel是否应该对视图或ViewModels进行观察?
-
12-09-2019 - |
题
我试图在使用时了解基本的MVVM设计方法 ItemScontrol 通过通过 Datatemplates 至 观察力授权 在ViewModel上。
我已经看到了与观测的示例 字符串, 视图, , 和 ViewModels.
与字符串结合似乎只是为了 演示, ,这是对“ViewModels包含包含ViewModels集合的视图集合“ WPF的力量似乎确实出现了。
对于熟练使用MVVM模式的使用者,您对binting itemscontrol,listView,list框的标准方法是什么? 我正在寻找这样的经验的建议:
- 始终使用observableCollection <...>,永不列表<...>因为...
- 比ItemScontrol更好地显示集合的东西是...
- 为了使过滤以在您的ViewModel而不是代码范围内工作,请使用...
- 当... ... ...时使用视图集合以及视图的集合时...
- 90%的时间,我创建一个ItemScontrol并将其绑定到具有自己的ViewModels的视图的观测值...
解决方案
由于以下原因,我将使用观察模式的观察力集成:
- 观察到已修改后已经有可用于信号的事件(例如,从集合中添加/删除项目时)。
- 我们在ViewModel的“层”,因此它提供了更清洁的分离,以使ViewModel包含一个ViewModels而不是视图
- 如果有必要修改或从集合中的项目中获取数据,则可以更轻松地修改/访问该数据(如果它们是ViewModels)(如果它们视图,则经常会施放View's DataContext或访问其UI元素)。
其他提示
我喜欢使用观察模式的观察力。绑定到集合的视图可以定义一个datatemplate,以使视图模型看起来。这导致组件之间的耦合较少。
我也有同样的问题,但是用“模型”替换“视图”。 :)
我有一个带有其他模型的模型。我希望我的ViewModel拥有可观察到的其他ViewModels的集合,但是一旦我这样实例化 - 模型集合内容之间的连接就会丢失。现在,我是否需要开始将所有事件从ViewModels可观察的集合接线回到模型集合?
不隶属于 StackOverflow