NavigationService 何时初始化?

2023-12-01

我想从我的页面捕获 NavigationService.Navigating 事件,以防止用户向前导航。我有一个这样定义的事件处理程序:

void PreventForwardNavigation(object sender, NavigatingCancelEventArgs e)
{
    if (e.NavigationMode == NavigationMode.Forward)
    {
        e.Cancel = true;
    }
}

...效果很好。但是,我不确定该代码的确切位置:

NavigationService.Navigating += PreventForwardNavigation;

如果我将它放在页面的构造函数或 Initialized 事件处理程序中,则 NavigationService 仍然为 null,并且我会收到 NullReferenceException。但是,如果我将其放置在页面的 Loaded 事件处理程序中,则每次导航到该页面时都会调用它。如果我理解正确的话,这意味着我正在多次处理同一事件。

我可以多次向事件添加相同的处理程序(就像我使用页面的 Loaded 事件来连接它一样)吗?如果没有,在初始化和加载之间是否有某个地方可以进行此接线?


@Espo 你的链接帮助我找到了解决方法。我称其为解决方法,因为它是ugly,但这就是微软自己在文档中所做的:

public MyPage() // ctor
{
    InitializeComponent();
    this.Loaded += delegate { NavigationService.Navigating += MyNavHandler; };
    this.Unloaded += delegate { NavigationService.Navigating -= MyNavHandler; };
}

所以你基本上必须取消订阅当您的页面被卸载时,来自导航服务的事件。

+1 对您帮助我找到它的回复。我似乎无法将自己的回答标记为“已接受的答案”,所以我想我现在就将其保留。

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

NavigationService 何时初始化? 的相关文章

  • 并行应用程序的可变与不可变[关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 在我正在编写的应用程序中 我需要编写大量基本类型 这些类型很可能是不可变的 但我想知道并行应用程序中可变类型与不可变类型的比较如何 您可以对可变
  • 将 WPF 快捷键绑定到 ViewModel 中的命令

    我有一个使用 MVVM 模式的 WPF 应用程序 将按钮连接到 VM 非常简单 因为它们实现了 ICommand 我有一个工作原理类似的上下文菜单 下一步是为上下文菜单创建快捷键 我不知道如何让快捷键调用命令 这是一个例子
  • 在 DataGridView 中隐藏行非常慢

    我在 Winforms 应用程序中有一个 DataGridView 大约有 1000 行 未绑定 和 50 列 隐藏一列需要整整 2 秒 当我想隐藏大约一半的行时 这就成为一个问题 private void ShowRows string
  • 实用程序库中应包含哪些内容[关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 随着我的项目越来越多 我发现我经常从一个项目到另一个项目 从一个客户到另一个客户重复许多常见的任务 因此 我开始组装一个 实用程序 库 这是这些
  • DotNET 应用程序中的 GDI 句柄

    我的纯 DotNET 库作为非托管桌面应用程序中的插件运行 我收到了稳定的 虽然低 崩溃报告流 这些报告似乎表明 GDI 句柄存在问题 错误消息中的字体等 恢复为系统字体 各种控件的显示崩溃 不久后发生大规模崩溃 我的窗体几乎没有控件 但我
  • 该组件没有由 uri 标识的资源

    我想创建一个通用数据网格以在我的所有视图 用户控件上使用 这是我的结构 Class Library called Core Class called ViewBase public class ViewBase UserControl pu
  • C# Julian 日期解析器

    我在电子表格中有一个单元格 它是 Excel 中的日期对象 但当它来自 C1 的 xls 类时 它会变成双精度型 类似于 2009 年 1 月 7 日的 39820 0 我读到这是儒略日期格式 有人可以告诉我如何在 C 中将其解析回 Dat
  • EasyNetQ 模型关闭

    我使用 EasyNetQ 实现了一个简单的 RabbitMQ 客户端 连接后 我收到一条通知 队列模型关闭 这是我的代码 var bus RabbitHutch CreateBus String Format host 0 hostName
  • 找不到 Microsoft.Office.Interop Visual Studio

    我正在开发一个使用 C 发送电子邮件的应用程序 该应用程序将能够使用邮件模板等 问题是我无法找到任何 Office Interop 引用 这意味着我无法使用 Outlook 我的计算机上安装了 Office 但我也尝试从此链接安装 PIAh
  • 同一服务器上的多个.NET版本

    所以我一直都知道在一台计算机 客户端或服务器 上运行多个版本的 NET 框架是可以的 这个问题 https stackoverflow com questions 407306 running many versions of net on
  • 使 DataTemplate 可混合

    如何为 ViewModel 制作可混合的数据模板 可在表达式混合中设计 当我转到资源并尝试直接编辑数据模板时 我在绘图板上看到的只是一个空白矩形 这是因为 DataTemplate 没有绑定到任何东西 当然 我可以创建一个 UserCont
  • 比较运算符性能 <= 与 !=

    让我们首先声明代码可读性胜过微优化 我们应该将其留给编译器 这只是一个奇怪的案例 具体细节似乎与一般建议相比很有趣 因此 我在搞素数生成器函数 并提出了一种奇怪的行为 其中 人们建议效率最高 实际上效率最低 而 C private stat
  • 使用实体框架重叠约会

    我将 asp net mvc 与实体框架一起使用 我有一个包含 startat 字段 endat 字段和 roomid 字段 称为 SpaceConfigurationId 的约会列表 并且希望查找给定房间已重复预订的约会列表 可以假设 e
  • 在 xaml 中编写嵌套类型时出现设计时错误

    我创建了一个用户控件 它接受枚举类型并将该枚举的值分配给该用户控件中的 ComboBox 控件 很简单 我在数据模板中使用此用户控件 当出现嵌套类型时 问题就来了 我使用这个符号来指定 EnumType x Type myNamespace
  • WPF 数据绑定到复合类模式?

    我是第一次尝试 WPF 并且正在努力解决如何将控件绑定到使用其他对象的组合构建的类 例如 如果我有一个由两个单独的类组成的类 Comp 为了清楚起见 请注意省略的各种元素 class One int first int second cla
  • 如何实例化 ODataQueryOptions

    我有一个工作 简化 ODataController用下面的方法 public class MyTypeController ODataController HttpGet EnableQuery ODataRoute myTypes pub
  • 如何在 Android 中使用 C# 生成的 RSA 公钥?

    我想在无法假定 HTTPS 可用的情况下确保 Android 应用程序和 C ASP NET 服务器之间的消息隐私 我想使用 RSA 来加密 Android 设备首次联系服务器时传输的对称密钥 RSA密钥对已在服务器上生成 私钥保存在服务器
  • 在 WPF 中使用 ReactiveUI 提供长时间运行命令反馈的正确方法

    我有一个 C WPF NET 4 5 应用程序 用户将用它来打开某些文件 然后 应用程序将经历很多动作 读取文件 通过许多插件和解析器传递它 这些文件可能相当大 gt 100MB 因此这可能需要一段时间 我想让用户了解 UI 中发生的情况
  • 使用特定参数从 SQL 数据库填充组合框

    我在使用参数从 sql server 获取特定值时遇到问题 任何人都可以解释一下为什么它在 winfom 上工作但在 wpf 上不起作用以及我如何修复它 我的代码 private void UpdateItems COMBOBOX1 Ite
  • 从 mvc 控制器使用 Web api 控制器操作

    我有两个控制器 一个mvc控制器和一个api控制器 它们都在同一个项目中 HomeController Controller DataController ApiController 如果我想从 HomeController 中使用 Dat

随机推荐

  • 将完成处理程序添加到presentViewControllerAsSheet(NSViewController)?

    我试图呈现一个工作表配置视图 AddSoundEffect 对于我的主窗口 视图控制器 我正在使用故事板 当配置视图控制器被关闭时 采用在AddSoundEffect查看并将其传递回主视图 我当前在主视图控制器中的代码 presentVie
  • 获取args[0]之后的所有参数discord.js

    我试图制作一个静音命令 并且我正在添加一个系统 您可以在其中出于某种原因将它们静音 机器人会回复 用户的用户名 已静音 原因 原因 对我来说 args 0 只是提到您想要静音的用户 但我不知道如何获取 args 0 之后的所有内容 我尝试过
  • “JSON”未定义

    I m trying to load the Chromecast background website into a c WebBrowser but am getting 我认为发生这种情况是因为网络浏览器默认使用 IE7 这可能无法与
  • 在 Codeigniter 中的所有控制器上具有固定视图

    为了在 CodeIgniter 中加载视图 我必须重复加载固定视图 页眉和页脚 这对于每个与视图相关的控制器重复加载有点烦人 目前 当我想在 CI 中加载视图时 我会执行以下操作 this gt load gt view header th
  • 如何在具有不同域的同一 IP/服务器上托管多个 Node.js 站点?

    我有一个Linux服务器 绑定了一个IP 我想在该 IP 上的服务器上托管多个 Node js 站点 每个站点 显然 都有一个唯一的域或子域 我希望它们全部位于端口 80 上 我有什么选择来做到这一点 一个明显的解决方案似乎是让所有域都由充
  • 如何通过命令行更改现有文件夹的图标? (Windows 10)

    我的桌面上有一个文件夹和 12 个不同的图标 我想使用任务计划程序创建一个计划任务 只要我的电脑处于打开状态 该任务就会运行并每 15 分钟更改一次文件夹的图标 我做了研究 发现了这段代码 attrib h r c test desktop
  • iPhone核心位置:地图类型更改时自定义图钉图像消失

    我有一个位于 MKMapView 上的分段控制器 当我更改 MKMapType 时 自定义图钉的图像将恢复为默认的红色 标题和副标题以及坐标保持不变 任何人都可以阐明可能的解决方案吗 不久前我也遇到了类似的问题 为什么自定义 MKMapVi
  • 如何判断 Sympy 变量是否为复数?

    我正在编写一个涉及求解这个方程的代码 X solve Theta Mod Eqn Ramp Equation x PT C x 我正在使用 sympy 库 现在方程有 7 个根 很少是复数根 很少是实数根 我无法将它们分开 因为isinst
  • 服务永久处于“启动”状态

    我用 C 编写了一个 Windows 服务 它将 wav 文件转换为 mp3 然后将它们存储在远程服务器上 在我的开发平台 操作系统 WinXP SP3 上 服务启动正常并按预期运行 当我将其安装到生产机器 操作系统 WinServer 2
  • notificationDataSetChanged() 使列表刷新并滚动跳回顶部

    我正在尝试实现无限滚动列表视图 但是当我打电话时notifyDataSetChanged 整个列表刷新然后滚动位置返回到顶部 这是正常行为吗 如何让它简单地添加添加的项目而不刷新并保持滚动位置 这种行为是不正常的 在没有看到您的代码的情况下
  • 使用 Javascript/jQuery 访问 id 属性不正确的 HTML 元素

    我正在为某人制作一个 Greasemonkey 脚本 以更改其 CRM Zoho 创建的某些字段的显示 因为他们无权更改呈现的 HTML 这应该很容易 但是 Zoho 认为创建正确的 HTML 太麻烦了 我猜 他们的 HTML 包含这样的内
  • 如何使用 Google Apps 脚本在电子邮件主题中使用表情符号?

    我正在尝试使用 Google Apps 脚本发送电子邮件 try 1 const subject Hello World try 2 const subject Hello World String fromCodePoint 0x1F60
  • 使用 new-azwebapp 时如何选择运行环境?

    我目前正在构建一个脚本来自动创建天蓝色网络应用程序 前端是用 React 构建的并且部署得很好 后端是使用node构建的 发布时不会运行 我认为默认情况下 New AzWebApp 创建一个 net windows 运行时环境 而我想要一个
  • 为同一路线航行多个处理程序

    正如标题所示 我想在不同的控制器中为 Sails Js 中的同一路线分配多个操作处理程序 我尝试过的 post rest users controller FirstController action someAction controll
  • Visual Studio 2022:更改垂直滚动条中定位区域的颜色

    如何更改图像中突出显示的区域的颜色 该区域显示您所在的位置或要滚动到正在编辑的页面中的位置 我发现能够更改此设置的唯一方法是创建自己的主题 因为 Visual Studio 独立版似乎不支持此功能 幸运的是 有一个很好的扩展名为Visual
  • 将 sp_executesql 与 params 一起使用会抱怨需要声明变量

    我正在尝试创建一个使用 sp executesql 的存储过程 我已经仔细观察了很久here 但我看不到我在代码中做错了什么 一般来说 我对存储过程 sql 服务器功能很陌生 所以我猜我错过了一些简单的东西 存储过程更改发生得很好 但是当我
  • 通告揭示了新活动的过渡

    As per https developer android com training material animations html The ViewAnimationUtils createCircularReveal 方法使您能够
  • BCNF分解算法不起作用

    我有以下问题 R ABCDEFG 和 F AB gt CD C gt EF G gt A G gt F CE gt F 显然 B 和 G 应该是键的一部分 因为它们不是依赖集的一部分 此外 BG ABCDEFG 因此是候选键 显然 AB g
  • Webkit CSS 控制输入[type=color] 中颜色周围的框?

    是否有特定于 Webkit 的 CSS 样式 可以让我控制颜色周围的框的颜色 大小 样式input type color 我已经设置了输入的颜色和背景颜色 因此它与我用于旧版 Chrome 和 Firefox 的交叉兼容性填充程序看起来不错
  • NavigationService 何时初始化?

    我想从我的页面捕获 NavigationService Navigating 事件 以防止用户向前导航 我有一个这样定义的事件处理程序 void PreventForwardNavigation object sender Navigati