从头开始构建我自己的mvvm项目?

时间:2012-12-28 04:29:54

标签: c# wpf mvvm mvvm-light

我已经调查了MVVM不到一个月。我也尝试了一个Mvvm框架(来自Laurent Bugnion的Mvvmlight。很棒)。

但是我正在考虑自己做所有这些事情,这意味着我想从头开始遵循mvvm哲学构建我的项目(不要使用任何可用的mvvm框架)。 我希望尽可能简单,但仍然有足够的功能和严格遵循mvvm哲学。这就是我需要你的建议来帮助我认识到我需要的东西的原因。我面对的是什么我要花多少时间?

在几乎Mvvm框架中,我发现它们支持以下内容:

  • 构建一个ViewModelBase:应该为INotifyPropertyChanged实现,INotifyPropertyChanging - >支持绑定属性
  • RelayCommand(在Prism中是DelegateCommand):为ICommand实现
  • Messenger class

制作Mvvm项目是否足够?

我知道Mvvm是一个模型,因此有多种方式可以实现。但是有了像我这样的新手。知道我应该从哪里开始太难了。 对于长篇故事我感到抱歉但不清楚问题。只是我试着展示我目前的情况并向你们提出建议。

感谢您的阅读和阅读即将到来的新年快乐!!!

2 个答案:

答案 0 :(得分:1)

对于简单的MVVM项目,后续就足够了 1. RelayCommand:用于自定义命令
2. Messenger(或EventAggregator或MessageBus):用于视图模型之间的通信
3. ViewModelBase:ViewModels的基类。也可以用作模型的基类(但对于那个单独的基类)

对于更大的应用程序,还需要布局支持。这是由Prism Regions概念提供的。

除此之外你很高兴。

但我建议使用现有的MVVM框架。查看常用MVVM框架的this。它们是经过试验和测试的框架(并且是免费的)。它需要大量的测试工作来构建SOLID框架。

我不会说构建一个框架是一项艰巨的任务,但无论如何,它都是完全不必要的(直到Business / Work环境非常严格并且不允许它)。

答案 1 :(得分:0)

我认为在不使用任何外部MVVM框架的情况下,自己实现MVVM设计模式非常重要(至少是第一次)。它会迫使你去看和理解“水下石头”以及当时要解决的不同方法和解决方案。