首页 > 后端开发 > C++ > 如何在XAML页面之间高效传值?

如何在XAML页面之间高效传值?

Barbara Streisand
发布: 2025-01-03 14:14:40
原创
940 人浏览过

How to Efficiently Pass Values Between XAML Pages?

在 XAML 页面之间传递值

在 XAML 页面之间传递参数是有效应用程序设计的一个基本方面。无论您是在 Windows Phone、Silverlight、WPF 还是 Windows 8 应用程序中浏览页面,了解传递数据的适当方法都将增强应用程序的功能和用户体验。

1.使用查询字符串

对于简单的数据传输,可以使用查询字符串。通过此方法传递的数据必须转换为字符串并进行 URL 编码。

导航页面:

page.NavigationService.Navigate(new Uri("/Views/Page.xaml?parameter=test", UriKind.Relative));
登录后复制

目标页面:

string parameter = string.Empty;
if (NavigationContext.QueryString.TryGetValue("parameter", out parameter)) {
    this.label.Text = parameter;
}
登录后复制

2.使用 NavigationEventArgs

NavigationEventArgs 可以访问在导航期间通过方法调用传递的参数。

导航页面:

page.NavigationService.Navigate(new Uri("/Views/Page.xaml?parameter=test", UriKind.Relative));

// and ...

protected override void OnNavigatedFrom(NavigationEventArgs e)
{
    Page destinationPage = e.Content as Page;
    if (destinationPage != null) {

        destinationPage.PublicProperty = "String or object..";
    }
}
登录后复制

目标页面:

// Use the value of "PublicProperty"..
登录后复制

3。使用手动导航

手动导航允许通过构造函数传递自定义参数。

导航页面:

page.NavigationService.Navigate(new Page("passing a string to the constructor"));
登录后复制

目标页面:

public Page(string value) {
    // Use the value in the constructor...
}
登录后复制

Uri 和 Manual 之间的区别导航

主要区别在于应用程序生命周期。手动创建的页面会保留在内存中,而通过 Uri 导航的页面则不会。

传递复杂对象

方法 1 和 2 可用于传递复杂对象,或者也可以使用自定义属性添加到Application类或数据可以存储在Application.Current.Properties中。

以上是如何在XAML页面之间高效传值?的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板