我使用Prism和我的視圖實現IConfirmNavigationRequest
以使它們能夠執行驗證並在需要時取消導航。Prism ConfirmNavigationRequest()在DataContext = this時調用兩次
我的問題是,我有幾個不使用MVVM的視圖,並且定義了DataContext = this
。這樣做會導致Prism兩次調用我的視圖ConfirmNavigationRequest()
,這意味着我要求用戶的響應兩次。
基本上什麼事情是這樣的:如果
- 棱鏡檢查視圖實現
IConfirmNavigationRequest
和調用ConfirmNavigationRequest()
如果這樣做。 - 詢問用戶是否要繼續。
- 用戶單擊確定並
ConfirmNavigationRequest()
返回true
。 - 棱鏡檢查是否viewmodel(在我的情況下,它的視圖再次)實現
IConfirmNavigationRequest
和調用ConfirmNavigationRequest()
如果它。 - 再次詢問用戶是否要繼續。
正如你所看到的,棱鏡問我確認觀點兩次,因爲這兩個查詢視圖和視圖模型。
所以我的問題是,我該如何防止這種情況發生,或者我該如何檢測哪個呼叫是可以忽略其中的一個?我想過調查continuationCallback
參數,但我不太喜歡這個解決方案,因爲它不太可能在下一個版本的Prism中破解。