【发布时间】:2011-11-14 12:21:47
【问题描述】:
我需要使用 Prism。 (我需要复合 UI)。但从 MVVM Light 的演示来看,它看起来很酷。
两者可以一起工作吗?还是这是个坏主意?
谁能告诉我如何让它们一起工作的例子?
我想要复合 UI 的 prism 和 MVVM 方面的 MVVM Light。
【问题讨论】:
标签: wpf mvvm prism mvvm-light
我需要使用 Prism。 (我需要复合 UI)。但从 MVVM Light 的演示来看,它看起来很酷。
两者可以一起工作吗?还是这是个坏主意?
谁能告诉我如何让它们一起工作的例子?
我想要复合 UI 的 prism 和 MVVM 方面的 MVVM Light。
【问题讨论】:
标签: wpf mvvm prism mvvm-light
是的,他们合作得很好
它们都是框架库,因此您可以从两者中挑选您想要的部分。比如我喜欢用Prism的NotificationObject(ViewModelBase),但是MVVM Light的Messenger(视图模型之间通信的事件系统)。
有时我什至会在一个项目中同时使用 Prism 的 DelegateCommand 和 MVVM Light 的 RelayCommand,即使它们都是为了同一件事(两者之间的主要区别是您必须手动提高 CanExecuteChanged()在DelegateCommand 上,而RelayCommand 会自动执行此操作,有时会更频繁地执行此操作)
【讨论】:
EventAggregator 类,其工作方式类似于MVVM Light 的Messenger。我发现它比 Messenger 复杂一些,我花了更长的时间才弄清楚,但如果你有兴趣,我有一个 helper class on my blog to simplify using the EventAggregator 可能会有所帮助。
我们在项目中使用 PRISM。尽管 PRISM 可以与 MVVM light 之类的免费框架一起使用,并且其中一些框架可以说比 PRISM 组件“更好”,但作为一个整体解决方案,PRISM 运行良好。此外,我相信如果没有令人信服的理由,在项目中使用一种技术会更简单。
使用 PRISM 的一个优点是教程和对学习技术的帮助非常好。任何新加入团队的人都会发现掌握这些概念相对容易。
看看类似的问题MVVM Light + Unity or Prism?
【讨论】:
Prism 和 MVVM light 都是 MVVM 框架,因此使用其中一个是有意义的。
【讨论】: