【发布时间】:2012-07-14 05:54:13
【问题描述】:
我认为我对 MVVM 设计模型有很好的理解,但是我对 WPF、命令绑定以及我们应该如何使用它们有意见。
要将命令直接绑定到 XAML,我们需要在 ViewModel 中实现 ICommand 接口。现在,ICommand 接口是 PresentationCore.DLL 的一部分,如果我错了,请纠正我是 WPF 的一部分,而不是基本的 .NET 框架。
ViewModel 和 Model 的全部意义不在于它应该完全独立于 UI 吗?例如,如果我在 ViewModel 中实现 ICommand 并将其用作数据上下文以绑定来自 XAML 的命令,那么我的 ViewModel 是否依赖于 WPF 框架(特别是 PresentationCore.Dll)。
我的意思是,如果我要去尝试在 Windows 窗体环境中使用我的模型和视图模型,我将不得不引用 PresentationCore.DLL,即使我不需要它,因为我使用 Windows 窗体不是WPF 框架。
这对我来说似乎有点奇怪,我在这里遗漏了什么吗?是否有另一种方法可以让我的模型和视图模型完全独立于 UI 和 UI 框架,但仍然能够利用 XAML 中的命令绑定?
提前致谢!
【问题讨论】:
-
此时我自己的唯一解决方案是创建两个视图模型,有一个 XXXViewModel 和一个 XXXViewModelWPF,它继承自 XXXViewModel 并包含所有与 ICommand 相关的东西,然后 XXXViewModelWPF 类简单地变成 WPF只要。有没有更好的办法?谢谢
标签: wpf design-patterns mvvm commandbinding