我的第一个C#/ Xaml体验是Windows Phone 8,其中导航的工作方式如下:
NavigationService.Navigate(new Uri("/MyPage.xaml", UriKind.Relative));
这意味着我可以用我需要的任何内容替换字符串“/MyPage.xaml”并转到该页面。
Windows Store应用程序可能类似吗?
this.Frame.Navigate(typeof(MyPage), UriKind.Relative);
MyPage不是字符串,所以我不能在应用程序运行时简单地替换它。还有什么办法吗?
我在做的是:
我使用ListBox从绑定的viewModel获取它的数据。在那里,我希望在SelectionChanged
事件被触发后存储应用应导航到的目标。
答案 0 :(得分:1)
是的,您可以在选择更改后传递页面的URL并加载相应的dataContext
protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e)
{
base.OnNavigatedTo(e);
var title = NavigationContext.QueryString["title"];
(DataContext as ImagePageViewModel).Load(title);
}
按照这个符合您要求的示例
答案 1 :(得分:1)
如果你得到带有命名空间的字符串,你可以像下面这样使用它。
this.Frame.Navigate(Type.GetType("Namespace.PageName"));