【问题标题】:MVVM / User Controls & View = ViewModel conventionMVVM / 用户控件和视图 = ViewModel 约定
【发布时间】:2011-07-03 05:06:44
【问题描述】:

MVVM 的 Laurent 光荣向我介绍了 MVVM,一个视图的约定有一个视图模型。那么用户控件的经验法则是什么?每个用户控件一个 ViewModel?在创建利用多个用户控件的视图时,您是否创建另一个视图模型来聚合用户控件视图模型?

提前感谢您的意见。

理查德

【问题讨论】:

    标签: silverlight-4.0 user-controls mvvm-light


    【解决方案1】:

    在我的 MVVM 项目中,我倾向于按照您的建议进行操作:每个 UserControl 一个 ViewModel,另一个 ViewModel 将所有这些聚合在一起。

    聚合的 ViewModel 通常是窗口的 ViewModel 而不是另一个 UserControl - 尽管这不是必需的,而且很可能是我的偏好和历史以及我主要在 WPF 中工作的事实的结果。

    我没有用于 UserControl 的单独 ViewModel 的一个地方是我创建了非常具体的可重用 UserControl - 例如具有特定视觉效果的按钮或自定义滑块。

    这反映在我的项目结构中 - 我有两个标准文件夹用于 UserControls(没有 ViewModels)和 Views,它们是 Windows 或 UserControls,并且总是有 ViewModels。

    【讨论】:

      【解决方案2】:

      每个用户控件一个 ViewModel?

      是的,一般来说。 UserControl 通常只是另一个视图。这通常意味着每个 UserControl 都有一个 ViewModel,并有一个“父”VM 聚合它(与聚合数据的 View 匹配)。

      但也有例外:如果 UserControl 真的只是一个自定义控件,而不是绑定到特定业务的东西,那么它可能是“纯视图”。在这种情况下,您可能根本不想为该控件使用 VM,因为它是 100% 视图。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-01-31
        • 2016-08-29
        • 2014-12-03
        • 2011-10-02
        • 2010-12-07
        • 2013-07-04
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多