1

1つのビューとビューが複数のViewModelとバインドされているシナリオがあります。

例えば。以下のように電話の詳細とViewModelを表示する1つのビュー:

  • 電話の基本機能-PhoneViewModel、
  • 電話料金の詳細-PhoneSubscriptionViewModel、
  • 電話アクセサリ-PhoneAccessoryViewModel
  • 一般的なプロパティの場合-PhoneDetailViewModel

Viewの一般的なプロパティをPhoneViewModelに配置しました。これで、シナリオは次のようになります。

デフォルトでは、ViewはPhoneViewModelのObservationCollectionにバインドされているPhoneBasic機能を表示します。私のビューにはボタンがあります- 'アクセサリの表示'、このボタンをクリックするとポップアップ画面が1つ表示されます-私のデザインでは、グリッドを表示/非表示にして、PhoneAccessoryViewModelのObservationCollectionとバインドします。

ここで問題が始まります-アクセサリリストにも[詳細の表示]ボタンがありますonclick1つのポップアップ画面を開く必要があります。ここでも1つのグリッドを配置して表示/非表示にしました。「ViewAccessoryDe​​tailCommand」コマンドを「ViewDetail」ボタンにバインドしました。また、コマンドを実行すると、1つの関数が起動し、ポップアップ画面に表示されるプロパティを設定します。

このようなプログラミングコマンドを使用すると、関数が呼び出されますが、プロパティの変更が発生しないため、ビューにポップアップが表示されません。

概要:1つのビュー->ViewModel1->グリッドバインドビューViewModel2->グリッドHaveボタンとOnclickは、ViewModel3とバインドされた新しいグリッドを表示します-このコマンドは起動しますが、プロパティは発生しません。

私の方法論には問題があると思います。提案してください。

4

2 に答える 2

1

WPFでは、ビューのをViewModelに設定することDataContextにより、ビューViewModelに接続されます。

各コントロールは1つしか持つことができないためDataContextビューは1つのViewModelしか持つことができません。

于 2010-03-13T10:05:49.507 に答える
1

あなたが尋ねようとしていることを完全に理解できるかどうかはわかりませんが、答えるつもりです。私は昨日(おそらく)同様の質問に対する答えを投稿しました。

見る

WPFのMVVMパターンをクエリしますか?

MVVM-ユーザーコントロールが相互に通信するための理想的な方法は何ですか

そうかどうかはわかりませんが、これがお役に立てば幸いです。

于 2010-03-13T10:57:35.523 に答える