如何在WinRT中使用DI

时间:2013-06-18 19:02:44

标签: xaml mvvm dependency-injection windows-runtime winrt-xaml

在WinRT页面中,如何注入依赖项?

我正在考虑做这样的事情:

/// <summary>
/// A page that displays an overview of a single group, including a preview of the items
/// within the group.
/// </summary>
public sealed partial class MyPage : NSyncApplication.WinRT.Common.LayoutAwarePage
{
    IMyDependency _myDependency;

    public MyPage(IMyDependency myDependency)
    {
        _myDependency = myDependency;
        this.InitializeComponent();
    }
    .
    .
    .
 }

如果这不是一个好的做法,请解释并推荐替代解决方案。

注意:

我不需要可以与WinRT一起使用的特定DI容器,已经得到了回答,任何白痴都可以查看nuget gallery并选择他们的选择。

这个问题是关于如何插入页面工厂并注入我自己的依赖项。我也看过Prism for WinRT,那个东西比我记得的WPF版本更令人费解。

重复:

  1. 如何直接注入页面。是否有页面工厂 或者我可以利用什么来添加自定义实例化代码?

  2. 我应该注入后面的代码并使其成为一个viewmodel吗? Prism MVVM的例子有 ViewModel的另一层抽象与之分离 代码背后(被视为View的一部分)。这很好,很酷,但需要更多的布线和 自定义标记比我关心的相对简单的项目。我希望能用更“轻盈”的东西滚动。但可能有一个争论要反对,请解释。

1 个答案:

答案 0 :(得分:0)

请检查MVVM-Light。他们使用VMLocator来公开XAML可以绑定的视图模型。在MSDN杂志上,您可以找到example如何使用它。