ViewModelBase クラス関連の仕様


ViewModelBase

プロパティ変更通知を実装したビューモデルの基底クラス

構文

public abstract class ViewModelBase : NotifyObject, IDisposable

メソッド

protected bool IsUiThread()
UI スレッドからのアクセスかどうかを判定する
protected override void RaisePropertyChanged([CallerMemberName] string propertyName = null)
PropertyChanged イベントを発火します(呼び出し元のスレッドが UI スレッドでない場合には、UI スレッドにて実行を行います)。
propertyName が省略された場合、呼び出し元のメソッドまたはプロパティの名前を用います。
protected void InvalidateRequerySuggested()
CommandManager.RequerySuggested イベントを強制的に発火させます(呼び出し元のスレッドが UI スレッドでない場合には、UI スレッドにて実行を行います)。
public void Dispose()
リソースの開放を行います。
protected virtual void Dispose(bool disposing)
リソースの開放を行います。

NotifyObject

プロパティ変更通知を実装した基底クラス

構文

public abstract class NotifyObject : INotifyPropertyChanged

プロパティ

protected Dispatcher UiDispatcher { get; }
UI スレッドのディスパッチャ

メソッド

protected void SetProperty<T>(ref T property, T value, [CallerMemberName] string propertyName = null)
プロパティ名 property を value の値で書き換え、PropertyChanged イベントを発火します。
protected void RaisePropertyChanged<T>(Expression<Func<T>> e)
PropertyChanged イベントを発火します(RaisePropertyChanged(string propertyName)を呼び出します)。
PropertyHelper.GetName<T>(Expression<Func<T>> e) を用いてプロパティ名を取り出します。
protected virtual void RaisePropertyChanged([CallerMemberName] string propertyName = null)
PropertyChanged イベントを発火します。
propertyName が省略された場合、呼び出し元のメソッドまたはプロパティの名前を用います。

イベント

public event PropertyChangedEventHandler PropertyChanged
PropertyChanged イベント処理用のデリゲート

PropertyHelper

構文

public interface IValidationDictionary

メソッド

public static string GetName<T>(Expression<Func<T>> e)
引数で渡されたプロパティから当該プロパティの名前を返します。