通过 Uri 将参数传递到 WPF 页面

2023-11-22

在导航样式 WPF 应用程序(NavigationWindow,而不是 XBAP)的上下文中:

超链接的 NavigateUri 是否可以包含额外的参数,例如路径数据或查询字符串?例如,有什么方法可以将我的 NavigateUri 设置为/Product.xaml/123 or /Product.xaml?id=123,并且让我的 Product.xaml 页面能够看到它是使用参数调用的123?


你可以这样做。看http://www.paulstovell.com/wpf-navigation:

虽然不明显,但是你可以 将查询字符串数据传递到页面,以及 从路径中提取它。例如, 您的超链接可以传递一个值 URI:

<TextBlock>
    <Hyperlink NavigateUri="Page2.xaml?Message=Hello">Go to page 2</Hyperlink>
</TextBlock>

当页面加载时,可以 通过提取参数NavigationService.CurrentSource, 哪个 返回一个 Uri 对象。那么就可以 检查 Uri 以分解 价值观。不过,我强烈推荐 反对这种方法,除非 最可怕的情况。

更好的方法涉及使用 的过载 NavigationService.Navigate 需要 参数的对象。你可以 自己初始化对象,对于 例子:

Customer selectedCustomer = (Customer)listBox.SelectedItem;
this.NavigationService.Navigate(new CustomerDetailsPage(selectedCustomer));

这假设页面构造函数 接收一个 Customer 对象作为 范围。这可以让你通过 页面之间的信息更加丰富, 并且无需解析字符串。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

通过 Uri 将参数传递到 WPF 页面 的相关文章

  • WPF 错误:属性元素不能位于元素内容的中间。它们必须位于内容之前或之后

    我有一个MergedDictionaries and DateTemplate里面一个ResourceDictionary一切都很好 直到我添加了一个Converter
  • WPF DataGrid 验证/绑定模式错误

    我创建了一个非常简单的新项目 仅测试 Microsoft WPF DataGrid 行为 不涉及其他 我只使用标准的 DataGrid
  • WPF DataGridTemplateColumn 组合框更新所有行

    我有这个 XAML 它从 ItemSource 是枚举的组合框中选择一个值 我使用的教程是 http www c sharpcorner com uploadfile dpatra combobox in datagrid in wpf h
  • WPF 如何从 DataTemplate 访问控件

    我有一个包含网格的数据模板 网格内有一个组合框
  • 如何将 WPF 大小转换为物理像素?

    将 WPF 与分辨率无关 宽度和高度转换为物理屏幕像素的最佳方法是什么 我正在 WinForms 表单中显示 WPF 内容 通过 ElementHost 并尝试制定一些大小调整逻辑 当操作系统以默认 96 dpi 运行时 我可以正常工作 但
  • 在资源字典中添加字体系列

    我正在使用msdn教程 http msdn microsoft com en us library ms753303 aspx wa wsignin1 0要在我的 Wpf 应用程序中添加 FontFamily 在 csproj 中我有
  • 具有依赖属性的值转换器

    我在实现自定义 DependencyObject 时遇到问题 我需要一个转换器来设置或取消设置绑定属性中的枚举标志 因此 我创建了一个从 FrameworkElement 派生的 IValueConverter 它具有两个 Dependen
  • 如何从 C# 代码访问 wpf 中的 ResourceDictionary?

    我有一个DataTemplate在我想通过 C 代码访问的 xaml 文件中定义 谁能告诉我如何访问它 我添加了一个新的ResourceDictionary文件 其名称是Dictionary1 xaml 我有一个数据模板 例如
  • 如何将一个控件的属性绑定到另一个控件的属性?

    我希望当表单被禁用时 表单中的 保存 按钮消失 我这样做 this formStackPanel IsEnabled someValue if this formStackPanel IsEnabled this saveButton Vi
  • 简单的WPF + MVVM绑定

    我有一个名为MyWindow源自于Window 我使用 MVVM 模式 因此在代码隐藏中我有以下字段 public MyViewModel ViewModel new MyViewModel ViewModel包含一个集合Person 我想
  • WPF 4.0 InvokeCommandAction 兼容性 (System.Windows.Interactivity)

    当我在 WPF 4 0 中插入 InvokeCommandAction Blend 4 SDK 时遇到问题 用户控件未显示 并且我遇到了一些例外情况 登录底部 如果我的 xaml 代码中没有该行 就没有问题 但没有事件触发器 我已经在外部灯
  • MVVM 消息传递或事件或其他什么选项?

    我在 MainViewModel 中有一个菜单 现在在选择特定的菜单项时我想更新已加载的视图的数据 即 虽然 MainViewModel 中有该 viewModel 的实例 但当我尝试通过该实例调用该方法并更改数据属性时 它不会显示视图中的
  • 我的 C# .NET 团队是否应该迁移到 Windows Presentation Foundation? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 如何在 Flutter 的 widget 树中打开新的 MaterialPageRoute 作为子项

    在下面的示例中 当我推送新的 MaterialPageRoute 时 它 会在与 Flutter 小部件树中的 Home 小部件相同的级别上创建 我希望将它作为小部件 Home 的子部件 因此 Home 将是 Child 小部件的父部件 这
  • 删除窗口的背景图像 WPF

    我在 WPF 中遇到问题 其中窗口在关闭后 应用程序的另一部分尝试写入图像之前不会释放其对背景图像文件的文件锁定 举个例子 假设我有一个 WPF 应用程序 由 3 个窗口 1 个 菜单 选择窗口和另外 2 个窗口组成 两个窗口都会创建一个I
  • WPF 中图像的淡入淡出

    当我更改幻灯片放映等图像源时 如何实现淡入和淡出图像 我的图像从本地和网络加载 并且其数量是可变的 谢谢 您可以编写一个扩展方法 通过动画显示图像来淡出图像Opacity属性设置为 0 然后设置Source属性并最终将不透明度动画回到 1
  • 来自嵌入图像的 BitmapSource

    我的目标是在 WPF 窗口上重写 OnRender 方法中绘制图像 someImage png 它是嵌入资源 protected override void OnRender System Windows Media DrawingCont
  • Mahapps 弹出窗口未与 caliburn.micro 一起出现

    我试图使用 mahapps 和 caliburn micro 在 wpf 中显示弹出窗口 不幸的是 弹出窗口的视图未得到解析 我得到的只是弹出窗口中显示的视图模型的类型名称 我需要根据 shell 中的 ActiveItem 显示弹出窗口
  • 列表元素之间的 Tab WPF

    我有一个列表框 其中每个项目都使用文本框表示 问题是我希望能够在移动到 xaml 窗口中的下一个元素之前在列表框中的所有项目之间进行切换 当前 和正常的 WPF 行为 是 当我按 Tab 键进入列表框时 第一个元素会突出显示 如果我再次按
  • 如何从 Access 数据库中读取“是/否”值作为布尔值?

    帮我找回YES NO来自 MS Access 的布尔格式数据类型 我尝试解析它 但它总是返回 false 更新 实际上不是问题抱歉 它确实接受 YES NO 作为布尔值 OleDbconnection dbConnect new OleDb

随机推荐

  • 用 C++ 读取另一个进程的标准输出

    在 Windows 中 有没有办法在 C 中启动进程 然后在完成后将其吐出到 stdout 中 如有必要 必须使用提升的权限 在 Vista 或更高版本上 运行该进程 我目前正在使用 ShellExecuteEx 启动进程并运行 while
  • jQuery data() 如何打破循环引用

    我读过一篇为什么它更好 and 它是如何实施的 但我真正不明白的是它如何打破循环引用 它如何打破参考圆 div1 data item div2 div2 data item div1 例如 上面的div互相指向 如何防止 我有一种预感 但我
  • 在不裁剪的情况下缩放 SDL Surface 的正确方法?

    缩放 SDL Surface 的正确方法是什么 我在网上找到了一种解释 但它需要逐像素地重新绘制表面 似乎应该有某种方法可以通过 SDL 本地执行此操作 而不是像那样重新绘制图像 我在 SDL 文档中找不到任何涉及此内容的内容 我可以通过修
  • 从 sbt shell 中设置环境变量

    我希望能够在交互式 sbt shell 中设置环境变量 但我似乎找不到方法来做到这一点 我查看了官方 sbt 文档以及 stackoverflow 但没有成功 我想明确的是我不想要必须在中设置此环境变量build sbt文件 而是能够在交互
  • android从布局xml动态添加元素

    如何从此布局 xml 中获取元素 myButton
  • 如何获取 RawInput HID 设备的人类可读名称?

    我正在将应用程序从 DirectInput 切换到 RawInput 以进行游戏手柄处理 并且我想为每个游戏手柄提供人类可读的描述 理想的情况是显示在设备管理器中的设备文本 但 USB 产品描述也可以 任何方法都应该在没有管理员许可的情况下
  • 谷歌地图 setMap 不是一个函数

    我正在处理我的谷歌地图页面在 Firebug 中显示错误的问题 当我在经销商地图中搜索时 将触发 clearLocations 函数 但出现了这个错误 markers i setMap 不是一个函数 有谁知道如何解决这个问题 我在几个论坛和
  • 更改列名而不重新创建 MySQL 表

    有没有办法在不进行重大更改的情况下重命名 InnoDB 表上的列 桌子相当大 我想避免重大停机 重命名列 使用ALTER TABLE CHANGE COLUMN 不幸的是需要 MySQL 运行全表复制 查看pt 在线架构更改 这有助于您对表
  • Netbeans 更新失败

    我的互联网连接没有问题 但是当我尝试更新 netbeans 插件或 IDE 本身时 每次都会出现此屏幕 即使重新安装操作系统也无法解决此问题 一次又一次地遇到同样的错误 我该如何修复它 在 Netbeans 中 Go to Tools gt
  • 使用 jQuery 更改图像地图坐标值

    我有一个非常复杂的图像映射 我想将其缩小一半 为此 需要将所有坐标值除以 2 由于有数千个坐标值 我想我可以使用 jQuery 遍历 DOM 来查找坐标值 然后将它们除以 2 当涉及到 JavaScript 和 jQuery 时 我非常业余
  • 为什么“复制到输出目录”选择的用语在不同位置之间会发生变化?

    VS NET 中的解决方案资源管理器中的配置值措辞与 VS NET 中的预计值之间存在不一致 csproj文件 在Solution Explorer a config或依赖文件中会有多个选项Copy To Output Directory影
  • Laravel 5.6:创建图像缩略图

    在我的旧 PHP 应用程序中 我曾经运行如下函数来创建 jpeg 图像缩略图 function imageThumbanail image src imagecreatefromjpeg http examplesite com image
  • Luigi - 覆盖任务需要/输入

    我正在使用 luigi 执行一系列任务 如下所示 class Task1 luigi Task stuff luigi Parameter def output self return luigi LocalTarget test json
  • Rust 的句法语法是上下文无关的还是上下文相关的?

    几乎没有任何编程语言的句法语法是规则的 因为它们允许任意深度嵌套的括号 Rust 也这样做 let x 但 Rust 的句法语法至少是上下文无关的吗 如果不是 什么元素使语法与上下文相关 或者语法是否可以递归枚举 例如C 的句法语法 Rel
  • 为什么我需要文档类型? (它有什么作用)[重复]

    这个问题在这里已经有答案了 可能的重复 HTML DOCTYPE 的功能是什么 我最近在这里问了一个问题 解决方案很简单 您需要向页面添加文档类型 这应该可以解决您的问题 现在 我的页面在没有文档类型的每个浏览器中都可以正常工作 IE 除外
  • jQuery 多文档就绪队列顺序

    我知道 jQuery 中对 function 的调用是按照定义的顺序执行的 但我想知道您是否可以控制队列的顺序 例如 是否可以在 Hello World 1 之前调用 Hello World 2 function alert Hello W
  • 使用 SharpSvn 检索日期范围内的日志条目

    我在用着SharpSvn通过 C 代码与我的 svn 存储库交互 我使用此代码来检索 svn 日志条目 Collection
  • 如何设置输入超时

    如果你等了 4 秒 它会说 你没时间了 这很好 但是 为了保持循环继续 您必须按enter键继续 我希望当它在下面打印 你没时间了 而不是仅仅键入时 它会显示一个输入语句 例如 键入 攻击 以继续 并且循环将从原来的位置继续 from th
  • SQLAlchemy 根据 JSONB 中的嵌套键进行过滤

    我有一个 JSONB 字段 有时有嵌套键 例子 nested field another URL foo a simple text text first metadata plain string another metadata foo
  • 通过 Uri 将参数传递到 WPF 页面

    在导航样式 WPF 应用程序 NavigationWindow 而不是 XBAP 的上下文中 超链接的 NavigateUri 是否可以包含额外的参数 例如路径数据或查询字符串 例如 有什么方法可以将我的 NavigateUri 设置为 P