我有一个窗口,其中包含一个框架。框架的源加载为“HomePage.xaml”。
我正在将所有内容转换为MVVM,但却在挣扎。以前,我在后面的代码中有这个功能:
private void HiscoreStatsTile_Click(object sender, RoutedEventArgs e)
{
NavigationService navService = NavigationService.GetNavigationService(this);
ChartTest x = new ChartTest();
navService.Navigate(x);
}
但是,我无法将此作为我的viewmodel中的命令工作。我应该如何抓住包含视图的那个框架,并将其导航到新页面?
答案 0 :(得分:0)
您不应在视图模型中访问视图或任何UI控件。
我更喜欢这里描述的viewmodel第一个导航:https://stackoverflow.com/a/28916120/475727事情会好得多,相信我
内置导航服务在mvvm场景中不能很好地工作。写自己的。这是几行代码。基本上你需要Navigate方法,它将viewmodel作为参数和CurrentPage属性,代表当前页面的viewmodrl。在主视图中,您只需将frame或甚至更好的contentcontrol绑定到currentpage属性,并使用datatemplate选择器或转换器为当前页面视图模型创建视图