如何阻止切换事件在导航时触发
How to stop a toggle event from triggering on navigation
所以我的 Xamarin.Forms 应用程序使用了 Prism,而且它运行良好。
我已经创建了一个设置页面,使用开关来做出某些选择,因此我在代码背后有一个 Toggle 事件处理程序,它也可以工作,做它应该做的事情。
我现在遇到的问题是尝试阻止切换方法在从页面导航时触发,它会在导航时自动执行。
我通过停止 ondisappearing 方法中的方法并执行
找到了针对之前 prism 版本 7.0.0.396 的解决方案
protected override void OnDisappearing()
{
base.OnDisappearing();
switch.Toggled -= switch_OnToggled;
}
这工作正常,因为 ondiappearing 方法在导航触发之前触发和停止切换事件,但它不适用于较新的棱镜版本,因为在较新的版本中,切换方法在 ondisappearing 之前触发方法可以阻止它们。
如有任何关于如何解决此问题的建议,我们将不胜感激。
所以我设法通过使用 Xamarin.Forms.BehaviorsPack 并使用 EventToCommandBehavior 将事件绑定到我的 ViewModel 中的命令来解决问题。
所以我的 Xamarin.Forms 应用程序使用了 Prism,而且它运行良好。 我已经创建了一个设置页面,使用开关来做出某些选择,因此我在代码背后有一个 Toggle 事件处理程序,它也可以工作,做它应该做的事情。 我现在遇到的问题是尝试阻止切换方法在从页面导航时触发,它会在导航时自动执行。 我通过停止 ondisappearing 方法中的方法并执行
找到了针对之前 prism 版本 7.0.0.396 的解决方案protected override void OnDisappearing()
{
base.OnDisappearing();
switch.Toggled -= switch_OnToggled;
}
这工作正常,因为 ondiappearing 方法在导航触发之前触发和停止切换事件,但它不适用于较新的棱镜版本,因为在较新的版本中,切换方法在 ondisappearing 之前触发方法可以阻止它们。
如有任何关于如何解决此问题的建议,我们将不胜感激。
所以我设法通过使用 Xamarin.Forms.BehaviorsPack 并使用 EventToCommandBehavior 将事件绑定到我的 ViewModel 中的命令来解决问题。