我试图在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标记方法一致,并沿着这条路线走下去?
谢谢.