私はMVVMから始めています。
私のアプリケーションはこの「パターン(PMパターン-ここではこれについて議論しないでください:))」を使用し、正常に動作します。プロジェクトはとてもシンプルで、初心者でも簡単に理解できると思います!もしそうだったら...:)
私を困惑させていることが1つあります。それは、MVVM自体とは何の関係もないかもしれません。PropertyChangedEventHandler。
私は自分のコードを1行ずつステップ実行していて、呼び出し(以下のコード)を見ることができますが、なぜこのハンドラーを呼び出しているのか、それが何をしているのかわかりません!
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ComponentModel;
using System.Windows.Input;
namespace drMVVM.Model
{
public class TextContent : INotifyPropertyChanged
{
private string text;
public string Text
{
get { return text; }
set
{
if (text != value)
{
text = value;
OnPropertyChanged("Text");
}
}
}
private void OnPropertyChanged(string propertyName)
{
if (PropertyChanged != null)
PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
#region INotifyPropertyChanged Members
public event PropertyChangedEventHandler PropertyChanged;
#endregion
}
}
ビューモデルにも同様のコードレイアウトがありますが、プロパティを設定する代わりに、オブジェクトのインスタンスを作成し、追加のロジックを適用しています。
PropertyChangedEventArgsは、何かが変更されたモデルのプロパティのみを更新するために使用されますか?もしそうなら、なぜそれはModelViewだけでなくモデルクラスに実装されているのですか?変更をリッスンするだけなのか、変更が発生したことを詳細に通知するのかを本能的に知ることができるからですか?それが通知である場合(私はそう思うので、インターフェースの名前です)、Modelクラスで何を通知しますか?