Tri*_*Gao 1 silverlight prism silverlight-4.0
我有一个实现 INavigationAware 接口的视图。该接口具有 OnNavigationFrom 方法,即根据 MSDN http://msdn.microsoft.com/en-us/library/microsoft.practices.prism.regions.inavigationaware.onnavigatedfrom(v=pandp.40).aspx,
当实现者被导航离开时调用。
现在,我想确保用户没有留下任何未保存的更改,如果有未保存的更改,请询问用户是否要保存它们。此时,我需要能够以某种方式取消该导航请求,以防用户想留下来继续编辑。
MSDN 上有关 INavigationAware 接口的文档没有说明应该如何使用该接口。
我可能是大错特错了,没有办法取消它,或者这个界面不适合那个。
无论如何,如果有人告诉我如何让用户留下并继续编辑已启动的导航请求,我将不胜感激。
我发现还有另一个接口可以解决这个问题:“ IConfirmNavigationRequest ”,它继承自 INavigationAware。它具有 ConfirmNavigationRequest 方法,该方法采用带有布尔参数的回调。如果我想取消导航请求,我会用 false 调用该回调,如果我想留下来,我会用 true 调用它:
continuationCallback(MessageBox.Show("Discard changes?", MessageBoxButton.OKCancel) == MessageBoxResult.Cancel)
Run Code Online (Sandbox Code Playgroud)
这样问题就解决了。感谢您的关注。
| 归档时间: |
|
| 查看次数: |
1546 次 |
| 最近记录: |