2010-12-19 7 views
1

に2つのユーザーコントロールのイベントを変更し、私はタイプMyChartの2つのチャートコントロールを持っています。ボタンをクリックすると、アイテムソースが更新され、新しいデータが表示されます。が私の見解でMVVM

ビューのViewModelには、MyChartタイプの2つのプロパティがあり、各MyChartに1つずつあります。

[更新]ボタンをクリックすると、ビューのビューモデルのRaisePropertyChangedイベントはどのようにして生成されますか?

+0

を使用してViewModelにに簡単に十分にPropertyChangedを処理できる必要がありますSilverlightのエキスパートが他の人にもっと良い答えを与えることができますが、すばやく簡単な修正として、プロパティを現在の値に再バインドすることができます。再バインディングはおそらく 'PropertyChanged'イベントを引き起こします。 – Basic

答えて

1

これは、ビューレイヤーにアプリケーションロジックがコーディングされているため、MVVMが正しく実装されていません。

標準の方法は、ViewModelにCommandプロパティを設定し、Button.CommandをViewModel.Commandにバインドすることです。これにより、ViewModelでのリフレッシュを処理し、必要な追加コードを記述することができます。あなたはMVVMを使用している場合

は、ビューに表示されるプロパティは、実際に、ViewModelにに存在し、あなたの質問に答えるために、あなたは私はありません this.PropertyChanged += new PropertyChangedEventHandler(ViewModel_PropertyChanged);

+0

なぜあなたは 'PropertyChanged'ハンドラを使っているのですか?あなたは 'PropertyChanged'を_call_するためのコマンドを、チャートにバインドされたそれぞれのプロパティに対して一度、二回得ることができます。 – AnthonyWJones

+0

@Anthony:あなたはそうですが、質問の一部は「ビューモデルのRaisePropertyChangedイベントをどのように発生させるか」です。 –

+0

答えは、コマンド実装のExecuteメソッドで呼び出すことです。 – AnthonyWJones

関連する問題