【问题标题】:Right way to implement MVVM using Silverlight in Prism Preferrably with MEF在 Prism 中使用 Silverlight 实现 MVVM 的正确方法最好使用 MEF
【发布时间】:2012-09-27 05:41:54
【问题描述】:

如果我想使用 MEF 在 Prism(Silverlight) 中创建 MVVM 应用程序,有人可以指导我应该如何设计(我不确定如何使用 MEF 导入或导出 ViewModel)。

我看到很少有文章使用 DataContext(在 XAML 或 View 的代码隐藏中)将 ViewModel 与 View 绑定。

我看到很少有人拥有 IView 和 IViewModel 接口,并且两者都拥有彼此的引用变量。

在某些地方,指南说 ViewModel 永远不应该引用 View。

如果有人能提供我的代码 sn-p,那就太好了。

【问题讨论】:

  • 一个简单的“代码 sn-p”不足以解释您需要什么。如下所述,您最好阅读 Prism 文档,并查看其中包含的不同示例应用程序。 StockTrader 应用程序将向您展示 MEF 和 MVVM 原理。

标签: mvvm prism silverlight-5.0


【解决方案1】:

你读过Prism documentation吗?他们有一个关于Implementing the MVVM Pattern 的部分讨论了连接视图模型和视图的不同技术。

您还可以使用 MVVM 框架(例如 Caliburn.Micro)实现复合应用程序,该框架使用视图模型/视图绑定的约定。

【讨论】:

    【解决方案2】:

    我会在后面的代码中使用 setter 注入来绑定 DataContext。视图和视图模型都是由 MEF 创建的。

    [Import]
    private MyViewModelClass ViewModel
    {
        get { return this.DataContext as MyViewModelClass; }
        set { this.DataContext = value; }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-05-03
      • 1970-01-01
      • 2023-03-29
      • 2012-11-16
      • 2011-09-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多