【问题标题】:Mvvm Light navigation from within a ViewModel's constructor从 ViewModel 的构造函数中进行 Mvvm Light 导航
【发布时间】:2017-04-08 23:50:07
【问题描述】:

我正在为运行 Windows 10 IoT Mobile 并因此使用 UWP 的设备开发一个内部应用程序。我正在使用 Mvvm Light 工具包。应用程序需要用户登录(没什么花哨的,只是为了记录目的记录他们的姓名),因此如果尚未设置此值(通过保存的设置),应用程序的主 ViewModel 将导航到登录页面。

我在使用 Mvvm Light Navigation Service 时遇到了问题。如果您尝试从 ViewModel 的构造函数中导航,则不会发生任何事情。

例如,在 Visual Studio 中,创建一个新的 Mvvmlight (Win10Univ) 项目。这将创建一个带有一些导航的示例应用程序。

现在将导航代码放在构造函数中,例如:

public MainViewModel(IDataService dataService, INavigationService navigationService)
{
    _dataService = dataService;
    _navigationService = navigationService;
    _navigationService.NavigateTo(ViewModelLocator.SecondPageKey, "12321");
    Initialize();
}

这行新代码似乎什么也没做,调试器直接在它上面执行,并且在“输出”窗口中什么也没有。

想一想,此时模拟器仍在显示启动画面,这可能是由于当时尚未完全创建应用程序吗?

有什么想法吗?

【问题讨论】:

    标签: c# uwp mvvm-light


    【解决方案1】:

    很可能是因为您的应用程序还不是Loaded

    检查this 问题并接受答案。

    基本上,它建议将命令绑定(通过交互行为EventTrigger)到视图模型的Loaded 事件。

    然后您应该将导航放在该命令中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多