如何使我的视图框架保持导航到新视图?

时间:2015-03-08 14:12:33

标签: c# wpf mvvm command

我有一个窗口,其中包含一个框架。框架的源加载为“HomePage.xaml”。

我正在将所有内容转换为MVVM,但却在挣扎。以前,我在后面的代码中有这个功能:

private void HiscoreStatsTile_Click(object sender, RoutedEventArgs e)
{
    NavigationService navService = NavigationService.GetNavigationService(this);
    ChartTest x = new ChartTest();
    navService.Navigate(x);
}

但是,我无法将此作为我的viewmodel中的命令工作。我应该如何抓住包含视图的那个框架,并将其导航到新页面?

1 个答案:

答案 0 :(得分:0)

您不应在视图模型中访问视图或任何UI控件。

我更喜欢这里描述的viewmodel第一个导航:https://stackoverflow.com/a/28916120/475727事情会好得多,相信我

内置导航服务在mvvm场景中不能很好地工作。写自己的。这是几行代码。基本上你需要Navigate方法,它将viewmodel作为参数和CurrentPage属性,代表当前页面的viewmodrl。在主视图中,您只需将frame或甚至更好的contentcontrol绑定到currentpage属性,并使用datatemplate选择器或转换器为当前页面视图模型创建视图