Я использую Prism, и мои представления реализуют IConfirmNavigationRequest
, чтобы они могли выполнять проверки и отменять навигацию при необходимости.
Моя проблема в том, что у меня есть несколько представлений, которые не используют MVVMи определите DataContext = this
.Это заставляет Prism дважды вызывать ConfirmNavigationRequest()
моего представления, что означает, что я дважды запрашиваю ответ пользователя.
В основном происходит следующее:
- Prism проверяет, является ли представлениереализует
IConfirmNavigationRequest
и вызывает ConfirmNavigationRequest()
, если это так. - Пользователя спрашивают, хочет ли он продолжить.
- Пользователь нажимает кнопку ОК, а
ConfirmNavigationRequest()
возвращает true
. - Prism проверяет, реализует ли модель представления (в моем случае снова это представление)
IConfirmNavigationRequest
и, если да, вызывает ConfirmNavigationRequest()
. - Пользователю снова задают вопрос:он хотел бы продолжить.
Как видите, Prism запрашивает у моего представления подтверждение дважды , поскольку оно запрашивает как представление, так и модель представления.
Итак, мой вопрос: как я могу предотвратить это или как я могу определить, какой вызов какой, и чтобы я мог игнорировать один из них?Я думал о том, чтобы исследовать параметр continuationCallback
, но мне это решение не очень нравится, поскольку вряд ли оно сломается в следующих версиях Prism.