Prismインストール
パッケージマネージャーコンソール
PM> Install-Package Prism
ViewModel
クラスの作成
BindableBaseを継承する。
sample.cs
class CalcViewModel :BindableBase
{
}
プロパティ
sample.cs
private string _leftValue;
public string LeftValue
{
get { return _leftValue; }
set { this.SetProperty(ref this._leftValue, value); }
}
コマンド
using Microsoft.Practices.Prism.Commands;
sample.cs
private ICommand calcCommand;
public ICommand CalcCommand
{
get { return this.calcCommand ?? (this.calcCommand = new DelegateCommand(CalcExecute, CanCalcExecute)); }
}
private bool CanCalcExecute()
{
return true;
}
private void CalcExecute()
{
// ロジックを書く
}
コマンドの実行可否が変わったことを通知するには、DelegateCommandクラスのRaiseCanExecuteChangedメソッドを呼ぶ必要がある。
Prism6だとObservesPropertyメソッドが用意されている。
get { return this.calcCommand ?? (this.calcCommand = new DelegateCommand(CalcExecute, CanCalcExecute)
.ObservesProperty(() => this.FOO)
.ObservesProperty(() => this.BAR)); }