に2つのユーザーコントロールのイベントを変更し、私はタイプMyChartの2つのチャートコントロールを持っています。ボタンをクリックすると、アイテムソースが更新され、新しいデータが表示されます。が私の見解でMVVM
ビューのViewModelには、MyChartタイプの2つのプロパティがあり、各MyChartに1つずつあります。
[更新]ボタンをクリックすると、ビューのビューモデルのRaisePropertyChangedイベントはどのようにして生成されますか?
に2つのユーザーコントロールのイベントを変更し、私はタイプMyChartの2つのチャートコントロールを持っています。ボタンをクリックすると、アイテムソースが更新され、新しいデータが表示されます。が私の見解でMVVM
ビューのViewModelには、MyChartタイプの2つのプロパティがあり、各MyChartに1つずつあります。
[更新]ボタンをクリックすると、ビューのビューモデルのRaisePropertyChangedイベントはどのようにして生成されますか?
これは、ビューレイヤーにアプリケーションロジックがコーディングされているため、MVVMが正しく実装されていません。
標準の方法は、ViewModelにCommandプロパティを設定し、Button.CommandをViewModel.Commandにバインドすることです。これにより、ViewModelでのリフレッシュを処理し、必要な追加コードを記述することができます。あなたはMVVMを使用している場合
は、ビューに表示されるプロパティは、実際に、ViewModelにに存在し、あなたの質問に答えるために、あなたは私はありませんthis.PropertyChanged += new PropertyChangedEventHandler(ViewModel_PropertyChanged);
なぜあなたは 'PropertyChanged'ハンドラを使っているのですか?あなたは 'PropertyChanged'を_call_するためのコマンドを、チャートにバインドされたそれぞれのプロパティに対して一度、二回得ることができます。 – AnthonyWJones
@Anthony:あなたはそうですが、質問の一部は「ビューモデルのRaisePropertyChangedイベントをどのように発生させるか」です。 –
答えは、コマンド実装のExecuteメソッドで呼び出すことです。 – AnthonyWJones
を使用してViewModelにに簡単に十分にPropertyChangedを処理できる必要がありますSilverlightのエキスパートが他の人にもっと良い答えを与えることができますが、すばやく簡単な修正として、プロパティを現在の値に再バインドすることができます。再バインディングはおそらく 'PropertyChanged'イベントを引き起こします。 – Basic