0

私の Silverlight アプリケーションでは、ViewModel から View に通知を送信する必要があります。それに応じて、UI コントロールのメソッドを呼び出す必要があります。私はこれを達成するための2つの方法を知っています:

1) ViewModel でイベントを発生させ、View のコード ビハインドでそれを処理します。
2) (MVVM Light メッセージング サポートを使用して) ViewModel からメッセージを送信し、View のコード ビハインドでこのメッセージに応答します。

XAML で何らかのデータ バインディングを使用するなど、ビューのコード ビハインドでコードを使用せずにこれを達成する方法があるかどうかを知りたいですか?

アイデアを共有してください。

ViewModel から通知を受け取ったときのビューの動作に関する追加情報 ビュー
の XAML で、次のメソッドを持つカスタム Silverlight グリッド コントロールのインスタンスを宣言します:
public void FileExportFinished(bool fileExportSucceeded)
通知に応答して XAML からこのメソッドを呼び出したいViewModel から受信し、通知で受信したブール値を渡します。

4

2 に答える 2

3

はい...依存関係プロパティの助けを借りてそれを行うことができます。

  1. そのビューの依存関係プロパティを作成します (別のビュー メソッドを呼び出すためにこのプロパティが必要なだけなので、ブール型にします)。
  2. そのプロパティ変更されたコールバックで、必要なビュー メソッドを呼び出すための準備を行います。
  3. 次に、DependencyProperty を ViewModel のプロパティにバインドします。
  4. したがって、ビューを更新する必要がある場合は、上記のバインドされたプロパティを設定するだけで、プロパティが変更された Dependency プロパティのコールバックが発生し、そこから必要なビュー メソッドが呼び出されます。
于 2012-08-26T07:15:57.747 に答える
0

ビューモデルでプロパティを使用し、xaml で DataTrigger を使用しないのはなぜですか?

ある種のダイアログ ポップアップが必要な場合は、dialogservice を使用できます。やりたいことを質問に追加する必要があります。通知が届いたとき、あなたの見解では何が起こるべきですか?

ところで、メッセンジャーはビューモデルとビューモデルの通信用であるため、オプションではありません。

于 2012-08-27T09:44:17.477 に答える