MVVM ViewModel和属性类型(PresentationCore.dll)

Kyl*_*Ren 0 c# data-binding wpf binding mvvm

我们可以在ViewModel中使用针对UI/UI框架的程序集中的类吗?

今天我讨论了一个问题,其中一个人非常执着,不能在PresentationModel中使用来自PresentationCore.dll的类.(好像他以前没有使用过ICommand)但是这样对吗?

因为我理解MVVM只是一种解耦View&ViewModel的模式?它没有说明我可以在ViewModel中使用什么类型的类,只要它们不创建视图(ViewModel没有直接引用视图或任何有关视图的特定实现或类型的知识).

请不要回答这是一个好的做法,我只是想明确MVVM.

Den*_*nis 5

有时MVVM看起来像宗教有自己的趋势.:)

以下是MVVM教派成员之间神圣战争的主题:

  • 先查看视图模型;
  • 从视图模型中执行/不显示PresentationFramework/ WindowsBase类型;
  • 不通过视图模型公开模型,并将视图直接绑定到模型;
  • 转换器与视图模型属性;
  • 视图模型中的聚合模型/地图模型数据查看模型;
  • 使用事件聚合器/使用服务.

最危险的是"纯MVVM"狂热分子.没人知道,"纯粹的MVVM"是什么,但是如果你违背他们的信念,他们已经准备好烧你了.

MVVM只是希望您将视图逻辑与视图模型逻辑分开.
这就是全部.

上面的列表只是一组方法,而不是教条.实际上,它们都适合MVVM.使用或不使用只是方便和当前项目架构的问题.