以下の内容はhttps://blog.okazuki.jp/entry/2016/04/23/103415より取得しました。


Xamarin.Forms + Prism.FormsのMVVMの基本的なクラス

変更通知用のINotifyPropertyChangedとコマンド用のICommand実装クラスが提供されています。

INotifyPropertyChangedの実装クラス

BindableBaseクラスになります。SetPropertyというメソッドがあって、変更通知プロパティを以下のように定義できるようになっています。

private int hoge;
public int Hoge
{
  get { return this.hoge; }
  set { this.SetProperty(ref this.hoge, value); }
}

この他に、指定したプロパティの変更通知ができるOnPropertyChangedメソッドなど、MVVMでアプリ書いたことがある人ならだれもが一度は実装したことあるようなおなじみのメソッドがあります。

ICommandの実装クラス

DelegateCommandクラスになります。コンストラクタの引数にExecute時に呼ばれる処理と、CanExecute時に呼ばれる処理を渡します。

this.HogeCommand = new DelegateCommand(this.HogeExecute, this.CanHogeExecute);

CanExecuteの変更通知に関してはRaiseCanExecuteChangedメソッドで行います。

this.HogeCommand.RaiseCanExecuteChanged();

RaiseCanExecuteChangedを呼ぶのは大体プロパティの変更タイミングなので、そういうケースに対応するためにObservePropertyというメソッドも定義されていたりします。式木で、プロパティを渡すことで、渡したプロパティが変更があったときにRaiseCanExecuteChangedを自動で呼び出してくれるようになります。 例えば、Titleプロパティが変わったときにRaiseCanExecuteChangedが呼ばれるようにするには以下のように書きます。

this.HogeCommand = new DelegateCommand(this.HogeExecute, this.CanHogeExecute)
    .ObservesProperty(() => this.Title);



以上の内容はhttps://blog.okazuki.jp/entry/2016/04/23/103415より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14