【问题标题】:Can Prism work with MVVM Light?Prism 可以与 MVVM Light 一起使用吗?
【发布时间】:2011-11-14 12:21:47
【问题描述】:

我需要使用 Prism。 (我需要复合 UI)。但从 MVVM Light 的演示来看,它看起来很酷。

两者可以一起工作吗?还是这是个坏主意?

谁能告诉我如何让它们一起工作的例子?

我想要复合 UI 的 prism 和 MVVM 方面的 MVVM Light。

【问题讨论】:

    标签: wpf mvvm prism mvvm-light


    【解决方案1】:

    是的,他们合作得很好

    它们都是框架库,因此您可以从两者中挑选您想要的部分。比如我喜欢用Prism的NotificationObject(ViewModelBase),但是MVVM Light的Messenger(视图模型之间通信的事件系统)。

    有时我什至会在一个项目中同时使用 Prism 的 DelegateCommand 和 MVVM Light 的 RelayCommand,即使它们都是为了同一件事(两者之间的主要区别是您必须手动提高 CanExecuteChanged()DelegateCommand 上,而RelayCommand 会自动执行此操作,有时会更频繁地执行此操作)

    【讨论】:

    • 感谢非常有用的评论。你知道 PRISM 中 MVVM Light 的 Messenger 的类似物吗?我是 PRISM 的新手,但基本上只有 Messenger 会在我的项目中保留对这两个框架的引用。
    • 嗨@Klaus,PRISM 有一个EventAggregator 类,其工作方式类似于MVVM Light 的Messenger。我发现它比 Messenger 复杂一些,我花了更长的时间才弄清楚,但如果你有兴趣,我有一个 helper class on my blog to simplify using the EventAggregator 可能会有所帮助。
    【解决方案2】:

    我们在项目中使用 PRISM。尽管 PRISM 可以与 MVVM light 之类的免费框架一起使用,并且其中一些框架可以说比 PRISM 组件“更好”,但作为一个整体解决方案,PRISM 运行良好。此外,我相信如果没有令人信服的理由,在项目中使用一种技术会更简单。

    使用 PRISM 的一个优点是教程和对学习技术的帮助非常好。任何新加入团队的人都会发现掌握这些概念相对容易。

    看看类似的问题MVVM Light + Unity or Prism?

    【讨论】:

      【解决方案3】:

      Prism 和 MVVM light 都是 MVVM 框架,因此使用其中一个是有意义的。

      【讨论】:

      • 将它们一起使用给您带来了什么问题?
      • 我个人没有一起使用过。它们都是实现相同模式的框架,所以我的建议是选择一个。而另一个答案表明它们确实并行工作,我只是不会在晚上睡觉以这种方式混合框架。我认为这更难维护,新用户更难上手,并增加了未来更新破坏兼容性的风险。
      猜你喜欢
      • 1970-01-01
      • 2014-10-28
      • 1970-01-01
      • 1970-01-01
      • 2013-08-09
      • 1970-01-01
      • 2017-07-26
      • 2017-06-08
      • 1970-01-01
      相关资源
      最近更新 更多