私はプリズムを使用しており、ビューはIConfirmNavigationRequest
を実装しており、必要に応じてナビゲーションをキャンセルできます。Prism ConfirmNavigationRequest()は、DataContext = thisのときに2回呼び出されます。
私の問題はMVVMを使用しないいくつかのビューがあり、DataContext = this
を定義していることです。そうすることでPrismは私のビューのConfirmNavigationRequest()
を2回呼び出すことになります。つまり、私はユーザーの応答を2回尋ねます。
基本的に何が起こっているこのです:ビューがIConfirmNavigationRequest
を実装し、それがない場合は、それにConfirmNavigationRequest()
を呼び出す場合
- プリズムをチェックします。
- ユーザーは、彼が続行したいかどうか尋ねられます。
- ユーザーが[OK]をクリックし、
ConfirmNavigationRequest()
がtrue
を返します。 - Prismは、ビューモデル(私の場合はビューです)が
IConfirmNavigationRequest
を実装しているかどうかを確認し、その場合はConfirmNavigationRequest()
を呼び出します。 - ユーザーは、彼が続行したいかどうか再度尋ねられます。あなたが見ることができるように、それはビューとのviewmodelの両方を照会するため
、Prismは確認倍のための私の見解を求めます。
私の質問は、どうしたらこのようなことが起きるのを防ぐことができますか、どのコールを検出できますか?私はcontinuationCallback
パラメータを調べることを考えましたが、次のバージョンのPrismで壊れてしまう可能性は低いので、このソリューションはあまり好きではありません。