我需要在页面之间传递参数,但需要使用Pack URI(https://docs.microsoft.com/en-us/dotnet/framework/wpf/app-development/navigation-overview#programmatic-navigation-with-a-pack-uri)进行程序化导航
注意:我不想使用构造函数来传递参数
目前我正在这样做:
Uri uri = new Uri("AnotherPage.xaml", UriKind.Relative);
this.NavigationService.Navigate(uri, parameter);
但是微软再次忘记在另一个页面上举一个如何接收数据的例子。
我在第二页尝试此操作以接收参数:
private void Page_Loaded(object sender, RoutedEventArgs e)
{
NavigationService.LoadCompleted += NavigationService_LoadCompleted;
}
private void NavigationService_LoadCompleted(object sender, NavigationEventArgs e)
{
throw new NotImplementedException();
}
但是它不起作用。
在这篇文章(How to pass values (parameters) between XAML pages?)中第二点使用
示例: 2.使用NavigationEventArgs
protected override void OnNavigatedFrom(NavigationEventArgs e)
{
// NavigationEventArgs returns destination page
Page destinationPage = e.Content as Page;
if (destinationPage != null) {
// Change property of destination page
destinationPage.PublicProperty = "String or object..";
}
}
但是 OnNavigatedFrom 不存在
在本文中,请使用全局变量,例如(How to pass values between two pages in WPF)
string myText = (string)Application.Current.Properties["test"];
如果没有更好的方法,也许这就是解决方案
此处(Passing data between pages in wpf)没有示例
我不知道我可能缺少有关WPF导航(https://docs.microsoft.com/en-us/dotnet/framework/wpf/app-development/navigation-overview)的信息,有人可以向我指出正确的方向吗?还是我只是在浪费时间,这是不可能的。
对不起我的英语,我不会说