寻找WPF MVVM骨架

时间:2011-11-17 20:26:46

标签: wpf mvvm

我已经学习了几周的WPF MVVM模式。 我仍然没有清楚地了解这种模式。

我已阅读此主题https://stackoverflow.com/questions/275098/what-applications-could-i-study-to-understand-datamodel-view-viewmodel以及几乎所有引用的文章。

所有例子的问题在于它们有“很多额外的东西”(菜单,几个视图等等)。当你需要学习如何做复杂的事情时这很好,但是当你看的时候它并不好对于你可以开始的东西。

我想有一个应用程序,我可以用它作为骨架来构建我自己的应用程序。即我希望看到一个只有绝对强制的应用程序,我想这是:

  • 主窗口
  • 模型类
  • ViewModel类
  • 查看课程
  • 一些ICommand实现? (我需要这样的东西吗?)
  • 可能我错过了什么

4 个答案:

答案 0 :(得分:2)

问题的一部分是,如果你考虑一下,其中大部分都不是特定的。

如果您只想要“纯粹的要求”,那么您唯一需要的就是ICommand实施。这是因为以下只是标准的WPF或C#类:

  • 主窗口 - >只需使用一个窗口
  • 模型类 - >这是您正常的项目数据。不应为MVVM更改
  • ViewModel类 - >这只是一个实现INotifyPropertyChanged
  • 的普通C#类
  • 查看课程 - >标准WPF UserControl

您唯一需要的是ICommand实现,它将代理路由到ICommand。这可以从任何MVVM框架中删除(它们都至少有一个,但通常有两个实现,一个用于Action,一个用于Action<T>,其中参数从CommandParameter路由。)

如果您需要一个简单的命令实现,欢迎您从我的MVVM Series代码中窃取该命令。它的代码并不是试图成为一个“框架”,因为目标只是展示MVVM的基础知识。

答案 1 :(得分:1)

在MVVM上查看Jason Dollinger的video。这是一个小例子,经历了创建非理想实现的过程,然后是如何使用MVVM正确执行它。我发现它在开始使用MVVM时非常有用。我认为视频非常扎实,我甚至不需要查看source,但也可以使用。

答案 2 :(得分:0)

看看这个很酷的工具包

MVVM Light Toolkit http://www.galasoft.ch/mvvm/

答案 3 :(得分:0)

如果您有兴趣,我写了一个非常基本的MVVM示例here

当我第一次开始学习MVVM时,我遇到了同样的问题......我找不到任何简单的资源来解释MVVM的基础知识。当我试图向其他人解释MVVM设计模式时更难,所以这是我为他整理的一个示例应用程序。我认为它相当简单明了,所以在网上发布。

编辑:我通常使用的实际“MVVM骨架”看起来更像this link中的代码。第一个链接是一个非常简单的mvvm应用程序,只有一个页面,但第二个链接以AppViewModel开头,可以处理切换视图。