如何在 Universal Windows Apps 中使用非默认构造函数
How to use a non-default constructor in Universal Windows Apps
我刚刚开始尝试创建通用 Windows 应用程序,并尝试使用 MVVM 和依赖项注入来实现它。
对于我的视图,我在构造函数中有一行用于设置 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));
我只是指定类型,无法控制对象的实例化。有人知道我怎样才能做到这一点吗?
谢谢
扎克
作为临时解决方案,您可以将 LoginViewModel 作为 Navigate
方法的辅助参数传递,并在页面的 NavigatedTo
方法中检索它。
如果你想更灵活,我会推荐MVVM Light库。它提供服务定位器,帮助您为每个页面创建 ViewModel。
我刚刚开始尝试创建通用 Windows 应用程序,并尝试使用 MVVM 和依赖项注入来实现它。
对于我的视图,我在构造函数中有一行用于设置 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));
我只是指定类型,无法控制对象的实例化。有人知道我怎样才能做到这一点吗?
谢谢
扎克
作为临时解决方案,您可以将 LoginViewModel 作为 Navigate
方法的辅助参数传递,并在页面的 NavigatedTo
方法中检索它。
如果你想更灵活,我会推荐MVVM Light库。它提供服务定位器,帮助您为每个页面创建 ViewModel。