Tag: INotifyPropertyChanged
参考情報†
namespace System.ComponentModel
{
// 概要:
// プロパティ値が変更されたことをクライアントに通知します。
public interface INotifyPropertyChanged
{
// 概要:
// プロパティ値が変更されたときに発生します。
event PropertyChangedEventHandler PropertyChanged;
}
}
使用方法†
- WPFでいうところのモデルに実装する。
- モデルクラスのPropertyChangedはBindingされたときにListBoxやTextBoxからセットされる。これによりListBoxやTextBoxが変更通知をうけとれるようになる。
典型的な実装†
- クラスにINotifyPropertyChangedインターフェイスをimplementsする。
- 下記NotifyPropertyChanged()のようなメソッドを作る(名前はなんでもよい)。
- 変更を通知したいプロパティのsetメソッドの実装を変更し、値がかわっていたらNotifyPropertyChanged()をよびだすようにする。
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");
}
}
}