1つのビューとビューが複数のViewModelとバインドされているシナリオがあります。
例えば。以下のように電話の詳細とViewModelを表示する1つのビュー:
- 電話の基本機能-PhoneViewModel、
- 電話料金の詳細-PhoneSubscriptionViewModel、
- 電話アクセサリ-PhoneAccessoryViewModel
- 一般的なプロパティの場合-PhoneDetailViewModel
Viewの一般的なプロパティをPhoneViewModelに配置しました。これで、シナリオは次のようになります。
デフォルトでは、ViewはPhoneViewModelのObservationCollectionにバインドされているPhoneBasic機能を表示します。私のビューにはボタンがあります- 'アクセサリの表示'、このボタンをクリックするとポップアップ画面が1つ表示されます-私のデザインでは、グリッドを表示/非表示にして、PhoneAccessoryViewModelのObservationCollectionとバインドします。
ここで問題が始まります-アクセサリリストにも[詳細の表示]ボタンがありますonclick1つのポップアップ画面を開く必要があります。ここでも1つのグリッドを配置して表示/非表示にしました。「ViewAccessoryDetailCommand」コマンドを「ViewDetail」ボタンにバインドしました。また、コマンドを実行すると、1つの関数が起動し、ポップアップ画面に表示されるプロパティを設定します。
このようなプログラミングコマンドを使用すると、関数が呼び出されますが、プロパティの変更が発生しないため、ビューにポップアップが表示されません。
概要:1つのビュー->ViewModel1->グリッドバインドビューViewModel2->グリッドHaveボタンとOnclickは、ViewModel3とバインドされた新しいグリッドを表示します-このコマンドは起動しますが、プロパティは発生しません。
私の方法論には問題があると思います。提案してください。