【发布时间】:2016-05-07 04:32:52
【问题描述】:
我们能否在我的 ViewModel 中使用针对 UI /UI 框架的程序集中的类?
今天我就question 进行了讨论,其中一个人非常坚持认为 PresentationCore.dll 中的类不能在 ViewModel 中使用。(似乎他从未使用过 ICommand)但是是这样吗?
据我了解,MVVM 只是 View 和 ViewModel 解耦的一种模式?它没有说明我可以在 ViewModel 中使用什么类型的类,只要它们不创建视图(ViewModel 没有对视图的直接引用或关于视图的特定实现或类型的任何知识)。
请不要回答什么是好的做法,我只是想清楚 MVVM。
【问题讨论】:
-
从架构的角度来看,您在视图模型中使用的类型定义在哪个程序集中并不重要。实际上,PresentationCore 中的一些类型经常出现在视图模型中,例如 Geometry、Color、Brush、BitmapSource 等。但是,它们都有一个共同点,即它们不是 Visuals。
-
@Clemens 我同意。但是如果我使用一些可视属性而不是创建视图(我只想使用一个函数或说该类的枚举)怎么办?
-
我已经阅读了来自链接问题的讨论。 @Tseng 只是不明白,从视图模型中解耦视图是什么,看起来有点狂热。反正你的理解是对的。
-
@KyloRen 去做吧!
-
你可以为所欲为。如果它有意义,并且使您的工作更轻松并且不会损害产品,那么为什么不这样做呢?另外,你不是 Kylo Ren。冒名顶替者。
标签: c# wpf mvvm data-binding binding