Edited at

ObservableObjectクラス(MVVM Light Toolkit リファレンス)


ObservableObject


概要

public class ObservableObject : System.ComponentModel.INotifyPropertyChanged


  • 観測可能(observable)なプロパティをもつオブジェクト(モデル)の基底クラスに使う。


名前空間


  • GalaSoft.MvvmLight


アセンブリ


  • GalaSoft.MvvmLight


メソッド


GetPropertyName

GetPropertyName

protected static string GetPropertyName<T>(System.Linq.Expressions.Expression<System.Func<T>> propertyExpression)


概要



  • propertyExpressionで指定するプロパティの名前を得る。


戻り値



  • propertyExpressionで指定するプロパティの名前。


例外



  • System.ArgumentNullException: propertyExpressionnullである。


  • System.ArgumentException: propertyExpressionで指定したプロパティが存在しない。



RaisePropertyChanged

RaisePropertyChanged

public virtual void RaisePropertyChanged(string propertyName = null)

public virtual void RaisePropertyChanged<T>(System.Linq.Expressions.Expression<System.Func<T>> propertyExpression)


概要



  • propertyNamepropertyExpressionで指定するプロパティに対してPropertyChangedイベントを起こす。


例外



  • System.ArgumentException: 指定した名前を持つプロパティが存在しない。



Set

Set

protected bool Set<T>(string propertyName, ref T field, T newValue)

protected bool Set<T>(System.Linq.Expressions.Expression<System.Func<T>> propertyExpression, ref T field, T newValue)
protected bool Set<T>(ref T field, T newValue, string propertyName = null)


概要



  • fieldnewValueを代入する。


  • fieldの値が変化したら、propertyNamepropertyExpressionを引数にしてRaisePropertyChangedメソッドを呼ぶ。


戻り値



  • fieldの値が変化したらtrue、変化しなかったらfalseを戻す。


例外



  • System.ArgumentException: 指定した名前を持つプロパティが存在しない。



VerifyPropertyName

VerifyPropertyName

public void VerifyPropertyName(string propertyName)


概要



  • propertyNameで指定するプロパティが存在することを確認する。

  • DEBUGビルド時のみ有効。


例外



  • System.ArgumentException: 指定した名前を持つプロパティが存在しない。



プロパティ


PropertyChangedHandler

PropertyChangedHandler

protected System.ComponentModel.PropertyChangedEventHandler PropertyChangedHandler { get; }


概要

PropertyChangedイベントのハンドラーを戻す。



イベント


PropertyChanged

PropertyChanged

public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged


概要



  • System.ComponentModel.INotifyPropertyChangedインターフェイスの実装。


  • RaisePropertyChangedメソッドやSetメソッドは、このイベントを起こす。



参照