【WPF】ボタンの活性/非活性を制御する!
はじめに
WPFでボタンの活性/非活性を制御する方法を備忘録として残したいと思います。
前提
今回の記事はPrismを用いていることが前提となります。
ボタン生成
まずはボタンを生成します。
<Button Margin="10" Height="20" Width="65" Content="登録" Command="{Binding SubmitButton}" />
SubmitButtonをViewModel側へバインドしています。
ViewModelにてSubmitButtonを定義
バインドしたSubmitButtonをViewModel側で定義します。
コンストラクタにて初期値を生成します。この際にObservesCanExecute
メソッドを追加し、その引数にてボタンが活性/非活性になる条件を記載します。
public MainWindowViewModel() { SubmitButton = new DelegateCommand(/* ボタン押下時の処理 */) .ObservesCanExecute(() => /* 活性/非活性にする条件 */); } public DelegateCommand SubmitButton { get; }
おわりに
XAML側でIsEnabled
要素を持って実装する方法もあるので、どちらを選択するかはプロジェクトの雰囲気次第ですかね。