2012-04-03 17 views
0

ViewModelにフックされたビューがあります。私はfoo.Currentによって公開されるシングルトンクラスを持っています。私はfoo.Current関数を呼び出すボタンのクリックコマンドの結果として変更されるそのクラスのプロパティを持っています。私はその値にテキストボックスのテキストをバインドできるようにしたい、そして、その値が更新されると、テキストボックスが更新されます。私のViewModelは、INotifyPropertyChangedを実装しており、ビューのモデルには、更新の制御がうまくいく他のプロパティがあります。そのシングルトンクラスが私のViewModelを新しい値で更新できるようにする最良の方法は何ですか? 私は、シングルトンクラスがViewModelを更新する方法を理解する必要があると思っています。MVVM公開プロパティ付きバインディング

+0

いくつかのコードスニペット、特にfoo.Currentプロパティ、バインドするテキスト、およびxamlバインディングを投稿してください。 –

+0

ViewModelプロパティが更新された場合、INotifyPropertyChangedの実装はUIを更新するための正しい方法です。 ViewModelのインスタンスをConstructorまたはSingleton foo.Current経由で取得する方法の違いはありません。 – Andris

答えて

2

次のように、オプションは次のとおりです。

  1. は、あなたのviewmodelでプロパティを定義し、あなたのシングルトンにそれのviewmodelを渡します。シングルトンは関連するプロパティを自身のものと共に変更する必要があります。 viewmodel自体
  2. でシングルトンをViewModelにまたは含むようにシングルトンから
  3. 移動特性をシングルトンのPropertyChangedイベントにアタッチINotifyPropertyChangedのからシングルトン
  4. 継承シングルトンのプロパティを変更すると、あなたのVMでイベントを作成します。あなたのプロパティ名を監視してください。
  5. ...

扱われるべきであるあなたのアプリでいくつかの建築の矛盾があるかもしれませんけれども1は、最初のオプションになります簡単な。

+0

ありがとうございました!私はシングルトンでINotiftPropertyChangedを実装し、ViewModelでイベントハンドラを作成しました。 –

+0

あなたは大歓迎です:) –

0

私はあなたをよく理解していれば、オブザーバーパターンを使用します。現在の状況には「最良の」方法はありません

関連する問題