我刚刚开始尝试创建通用Windows应用程序,并尝试使用MVVM和依赖注入来实现它。
使用我的View,我在构造函数中有一行设置ViewModel字段。
public sealed partial class Login : Page
{
private readonly LoginViewModel ViewModel;
public Login(LoginViewModel viewModel)
{
InitializeComponent();
ViewModel = viewModel;
}
}
我还需要在这个特定的视图模型中注入一个依赖项。理想情况下,所有这些都将通过注册IoC容器(Autofac)来设置。然而,目前我遇到的主要绊脚石是导航在UWP中发生的方式 -
rootFrame.Navigate(typeof(Login));
我只是指定了类型,并且无法控制对象的实例化。有谁知道我怎么能做到这一点?
由于
扎克
答案 0 :(得分:1)
对于临时解法,您可以将LoginViewModel作为Navigate
方法的辅助参数传递,并在页面的NavigatedTo
方法中重新获取。
如果你想更灵活,我会推荐MVVM Light库。它提供服务定位器,可帮助您为每个页面创建ViewModel。