【发布时间】:2024-01-24 07:05:02
【问题描述】:
我正在使用 Prism,我的视图实现了IConfirmNavigationRequest,以便使它们能够执行验证并在需要时取消导航。
我的问题是我有几个不使用 MVVM 的视图,并定义了DataContext = this。这样做会导致 Prism 调用我的视图的 ConfirmNavigationRequest() 两次,这意味着我请求用户的响应两次。
基本上是这样的:
- Prism 检查视图是否实现
IConfirmNavigationRequest,如果实现则调用ConfirmNavigationRequest()。 - 询问用户是否要继续。
- 用户点击OK,
ConfirmNavigationRequest()返回true。 - Prism 检查视图模型(在我的例子中,它又是视图)是否实现了
IConfirmNavigationRequest,如果实现了就调用ConfirmNavigationRequest()。 - 再次询问用户是否要继续。
如您所见,Prism 要求我的视图确认两次,因为它同时查询视图和视图模型。
所以我的问题是,我怎样才能防止这种情况发生,或者我怎样才能检测出哪个呼叫是哪个呼叫,以便我可以忽略其中一个呼叫?我考虑过调查continuationCallback 参数,但我不太喜欢这个解决方案,因为它不太可能会在下一个版本的 Prism 中中断。
【问题讨论】: