C#のWindowsフォームでMVVMをする方法:一緒に作るWindowフォームのMVVMフレームワーク
What you'll learn
- WindowsフォームでのMVVMのViewとViewModelのバインドする方法
- 各種コントロールのバインディング
- List系のデータバインディング
- ViewModelでのメッセージボックス表示
- ViewModelでの画面遷移する方法
- ステータスバーのある画面をベースとして共通化する方法
Requirements
- C#の基本的な実装が行える
- Visualstudio2019が動作する環境
Description
どうもこんにちは,ピーコックアンダーソンです。
今回はC#のWindowsフォームでMVVMをする方法を解説しています。
内容はViewとViewModelのデータバインディングの方法を
Windowsフォームではどのようにするべきかを,全体的にまとめています。
※MVVMのMの部分はやっていませんのでご了承ください。
コントロールのバインドから,ViewModelでのメッセージ表示,
ViewModelでの画面遷移をテスト容易性を考えた形で実装しています。
WPFと異なり,MVVMを支援するフレームワークや情報が充実していないので
改めて全体をまとめてみました。
チーム全体で使うフレームワークにもなると思しますし,
動画の中で一緒に作成することで理解が深まると思います。
Windowsフォームで実装をしている方は是非ご覧ください。
#01_はじめに
#02_プロジェクトの作成
#03_フォルダー構成の作成
#04_Labelのバインディング
#05_TextBoxのバインディング
#06_DateTimePickerのバインディング
#07_CheckBoxのバインディング
#08_RadioButtonのバインディング
#09_ComboBoxのバインディング_DataSource編
#10_ComboBoxのバインディング_SelectedValue編
#11_DataGridのバインディング
#12_DataGridで値を入力する方法
#13_BindingListの連動を確認する
#14_Dispatcherを使ってViewModelで非同期処理中にコントロールの値を変更する方法
#15_Dispatcherを使ってBindingListをUIスレッドに戻す方法
#16_ViewModelでメッセージを表示させる方法
#17_Moqを使って簡単にテスト用Mockを作成する方法
#18_メッセージボックスが表示されることを確認する
#19_例外メッセージを表示する方法
#20_ViewModelで画面遷移をする方法
#21_画面遷移でパラメーターを渡す方法
#22_DataGridをダブルクリックで選択行をViewModelに渡す方法
#23_新規追加と編集モードでReaOnlyを切り替える
#24_ステータスバーをバインディングする方法
#25_ステータスバーをすべての画面で共通化する
#26_ボタンのデータバインディング
#27_その他のバインディングと奥の手
#28_全体のまとめ
#29_不具合修正
#30_さいごに
Who this course is for:
- WindowsフォームでMVVMする方法を知りたい方
- Windowsフォームでチームで統一したコーディングを行いたい方
Instructor
20年ほどプログラマーとして活動しています。初期の頃はいろんな現場を転々とするプログラマーで10年ほど経験をつみ,その後,大手メーカーに入社し,C#やSQLServerを中心とした製品開発にて設計,製作,保守,プロジェクトリーダー等を10年近く担当。
知識習得のきっかけは,現場に分かりづらいプログラムコードが散乱しており,それらをわかりやすくするために,オブジェクト指向,ドメイン駆動開発,テスト駆動開発,リファクタリング,デザインパターンの書籍などを読み漁りました。その結果,一つのドメイン駆動開発手法にいまはたどり着き,チームのメンバーに伝えていますが,この知識を大勢の方にお伝えすると,予想以上に喜んで頂けているので,私の学んだ知識をできるだけわかりやすくお伝えして,私のした遠回りをあまりしなくてもいいように,解説していきたいと思っています。