&tag(INotifyPropertyChanged); *目次 [#d8940e75] #contents *参考情報 [#f172909d] *定義 [#x1dc794c] #pre{{ namespace System.ComponentModel { // 概要: // プロパティ値が変更されたことをクライアントに通知します。 public interface INotifyPropertyChanged { // 概要: // プロパティ値が変更されたときに発生します。 event PropertyChangedEventHandler PropertyChanged; } } }} *使用方法 [#k6bd252d] -WPFでいうところのモデルに実装する。 -モデルクラスのPropertyChangedはBindingされたときにListBoxやTextBoxからセットされる。これによりListBoxやTextBoxが変更通知をうけとれるようになる。 *典型的な実装 [#c5fa41f0] -クラスにINotifyPropertyChangedインターフェイスをimplementsする。 -下記NotifyPropertyChanged()のようなメソッドを作る(名前はなんでもよい)。 -変更を通知したいプロパティのsetメソッドの実装を変更し、値がかわっていたらNotifyPropertyChanged()をよびだすようにする。 #pre{{ public class DemoCustomer : INotifyPropertyChanged { private void NotifyPropertyChanged(String info) { if (PropertyChanged != null) { PropertyChanged(this, new PropertyChangedEventArgs(info)); } } private string companyNameValue = String.Empty; public string CompanyName { get { return this.companyNameValue; } set { if (value != this.companyNameValue) { this.companyNameValue = value; NotifyPropertyChanged("CompanyName"); } } } }}