MUI:导航到页面并设置数据源

MUI: navigate to page and set datasource

我正在使用 WPF ModernUI,我想导航到一个页面并设置该页面 DataContext。

为了导航,我使用了以下内容:

NavigationCommands.GoToPage.Execute("view/pages/TaskEditPage.xaml", this);

是否有任何其他方式导航到页面或是否有任何方式获取该页面的实例以便我可以设置 DataContext?

自从我使用 ModernUI 以来很长一段时间(也是唯一一次),导航通常如下所示:

NavigationCommands.GoToPage.Execute("view/pages/TaskEditPage.xaml#TaskID=xyz", this);

那么您可以:

public void OnFragmentNavigation(FragmentNavigationEventArgs e)
{
  //e.Fragment will be "TaskID=xyz"
  RetrieveTaskFromStore(e.Fragment)
}

承载当前页面的 ModernFrame 控件继承自 ContentControl,因此有一个 Content 属性,即当前页面。

但是,使用片段导航可以很好地分离关注点。让视图决定使用哪个视图模型 class 作为 DataContext 并使用片段导航来帮助加载视图模型的特定数据。