我试图在使用时了解基本的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可观察的集合接线回到模型集合?

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top