相关疑难解决方法(0)

Silverlight构造函数注入视图模型+设计模式

我试图在Silverlight 4中编写可测试的ViewModel.我正在使用MVVM灯.

我正在使用AutoFac和IoCContainer正在完成它的工作.但是要注入ViewModel的构造函数,它绑定到Views我有这个构造函数链接:

    public UserViewModel() : this(IoCContainer.Resolve<IUserServiceAsync>())
    {

    }

    public UserViewModel(IUserServiceAsync userService) 
    {
        if (this.IsInDesignMode) return;

        _userService = userService;
    }
Run Code Online (Sandbox Code Playgroud)

哪个不干净,但是到目前为止我找到的最佳选择.这是有效的,我的应用程序可以根据需要工作,并且可以通过控制倒置来测试

但是,我的VM绑定到我的视图,如下所示:

 <UserControl.DataContext>
            <ViewModel:UserViewModel />
 </UserControl.DataContext>
Run Code Online (Sandbox Code Playgroud)

在我的XAML页面属性中,VS2010和Blend中的设计模式都不起作用.

是否有更好的方法来实现我在Silverlight中尝试仍然适用于设计模式的东西?丢失设计模式不是一个交易破坏者,但在学习XAML时会很方便.一个更干净的无链接方式会很好!

我认为可以使用AutoFac/IoC将视图模型解析为视图,与上面的XAML标记方法一致,并沿着这条路线走下去?

谢谢.

c# silverlight ioc-container silverlight-4.0 mvvm-light

10
推荐指数
1
解决办法
1761
查看次数