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