C#のWindowsフォームでMVVMをする方法:一緒に作るWindowフォームのMVVMフレームワーク
What you'll learn
- WindowsフォームでのMVVMのViewとViewModelのバインドする方法
- 各種コントロールのバインディング
- List系のデータバインディング
- ViewModelでのメッセージボックス表示
- ViewModelでの画面遷移する方法
- ステータスバーのある画面をベースとして共通化する方法
Course content
- Preview04:46
- Preview01:28
- Preview03:18
- Preview22:34
- 09:3804_Labelのバインディング
- 04:2105_TextBoxのバインディング
- 03:3106_DateTimePickerのバインディング
- 02:3107_CheckBoxのバインディング
- 09:2508_RadioButtonのバインディング
- 06:4009_ComboBoxのバインディング_DataSource編
- 05:5310_ComboBoxのバインディング_SelectedValue編
- 05:5411_DataGridのバインディング
- 00:5512_DataGridで値を入力する方法
- 02:0813_BindingListの連動を確認する
- 06:1714_Dispatcherを使ってViewModelで非同期処理中にコントロールの値を変更する方法
- 08:1115_Dispatcherを使ってBindingListをUIスレッドに戻す方法
- 17:3116_ViewModelでメッセージを表示させる方法
- 04:0817_Moqを使って簡単にテスト用Mockを作成する方法
- 01:5818_メッセージボックスが表示されることを確認する
- 11:4919_例外メッセージを表示する方法
- 11:1520_ViewModelで画面遷移をする方法
- 06:5921_画面遷移でパラメーターを渡す方法
- 03:2522_DataGridをダブルクリックで選択行をViewModelに渡す方法
- 03:4523_新規追加と編集モードでReaOnlyを切り替える
- 15:2924_ステータスバーをバインディングする方法
- 06:5825_ステータスバーをすべての画面で共通化する
- 09:0026_ボタンのデータバインディング
- 05:3727_その他のバインディングと奥の手
- 12:1228_全体のまとめ
- 00:3729_不具合修正
- 02:0430_さいごに
- 00:02ソースコード
- 12:15補講01_Chartのデータバインディングのやり方
- 09:11補講02_Chartのデータバインディング_ViewModelに移動
- 05:14補講03_Chartのデータバインディング_Seriesにバインドする方法
- 04:40補講04_フォームを閉じるときの問い合わせメッセージの対応
- 00:21ボーナスレクチャー
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
18年ほどプログラマーとして活動しています。初期の頃はいろんな現場を転々とするプログラマーで経験をつみ,現在はメーカーの社員として製品開発のプロジェクトリーダーをしています。基本的にはC#を使ったプログラミングをしていて,データベースはSQLServerを使っています。
知識習得のきっかけは,現場に分かりづらいプログラムコードが散乱しており,それらをわかりやすくするために,オブジェクト指向,ドメイン駆動開発,テスト駆動開発,リファクタリング,デザインパターンの書籍などを読み漁りました。その結果,一つのドメイン駆動開発手法にいまはたどり着き,チームのメンバーに伝えていますが,この知識を大勢の方にお伝えすると,予想以上に喜んで頂けているので,私の学んだ知識をできるだけわかりやすくお伝えして,私のした遠回りをあまりしなくてもいいように,解説していきたいと思っています。