[C#][WPF] Buttonクリックの動作をCommandで実行する

概要

Windows foamアプリケーションではボタンクリック時の処置はボタンクリックイベント内に記載します。
WPFでもクリックイベントを設定できますが、MVVM的にはCommadを用いて疎結合を行うのが定石・・・なようです。

ボタンクリックイベントをコマンドとバインドする流れを大まかにまとめると・・・

  • 1.コマンド用のクラス(Command_forWin2.cs)を作成。
  • 2.ビューモデル(ViewModel_forWin2.cs)でコマンド用クラスのインスタンスを作成
  • 3.ビュー(Window2.xaml)でButtonのCommandプロパティに、ビューモデルでインスタンス化したコマンド用クラスをバインド
  • (ビュー内でDatacontextを設定しない場合は)
    4.モデル(Window2.xaml.cs)でDatacontextを設定します。

※ 本コードは一応動いてはいますが、textboxへのバインドの仕方はアヤシイです。。。※
※ ご注意ください。※

「1.コマンド用のクラス(Command_forWin2.cs)を作成。」
では、
ICommandを継承して「CanExecuteChanged」「CanExecute」「Execute」を設定します。
「Execute」プロパティにクリック時の処置を記載します。

「2.ビューモデル(ViewModel_forWin2.cs)でコマンド用クラスのインスタンスを作成」
では、
コマンド用クラスをインスタンス化します。
※ 14行目
[public Command_forWin2 win2Command { get; private set; } = new Command_forWin2();]

それ以外に、本ソースではtextoxの値の変更通知のために「INotifyPropertyChanged」を継承しています。

ビュー、コード

ビュー XAML (Window2.xaml)

コマンド (Command_forWin2.cs)

ビューモデル (ViewModel_forWin2.cs)

モデル (Window2.xaml.cs)

補足

動作イメージ

クリックでTextboxに文字が表示。

クリックするとTextboxの数字が+1。

item: None

$tagSerchWord

// PHPのテストをしています。 //

C#WPF
Yoshi1123をフォローする
Invisible Works

コメント

タイトルとURLをコピーしました