Udemy
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
Turn what you know into an opportunity and reach millions around the world.
Learn More
Your cart is empty.
Keep shopping
C#のWindowsフォームでMVVMをする方法:一緒に作るWindowフォームのMVVMフレームワーク
Rating: 4.2 out of 5(303 ratings)
2,490 students

C#のWindowsフォームでMVVMをする方法:一緒に作るWindowフォームのMVVMフレームワーク

コントロールのデータバインド,ViewModelでのメッセージ表示や画面遷移,ベース画面の作成方法を解説しています
Last updated 12/2025
Japanese

What you'll learn

  • WindowsフォームでのMVVMのViewとViewModelのバインドする方法
  • 各種コントロールのバインディング
  • List系のデータバインディング
  • ViewModelでのメッセージボックス表示
  • ViewModelでの画面遷移する方法
  • ステータスバーのある画面をベースとして共通化する方法

Course content

1 section56 lectures5h 33m total length
  • 01_はじめに4:46
  • 02_プロジェクトの作成1:28
  • 03_フォルダー構成の作成3:18
  • 03_2_ViewModelBaseとは?22:34

    念の為使用したコードをアップロードしておきます

  • 04_Labelのバインディング9:38
  • 05_TextBoxのバインディング4:21
  • 06_DateTimePickerのバインディング3:31
  • 07_CheckBoxのバインディング2:31
  • 08_RadioButtonのバインディング9:25
  • 09_ComboBoxのバインディング_DataSource編6:40
  • 10_ComboBoxのバインディング_SelectedValue編5:53
  • 11_DataGridのバインディング5:54
  • 12_DataGridで値を入力する方法0:55
  • 13_BindingListの連動を確認する2:08
  • 14_Dispatcherを使ってViewModelで非同期処理中にコントロールの値を変更する方法6:17
  • 15_Dispatcherを使ってBindingListをUIスレッドに戻す方法8:11
  • 16_ViewModelでメッセージを表示させる方法17:31
  • 17_Moqを使って簡単にテスト用Mockを作成する方法4:08
  • 18_メッセージボックスが表示されることを確認する1:58
  • 19_例外メッセージを表示する方法11:49
  • 20_ViewModelで画面遷移をする方法11:15
  • 21_画面遷移でパラメーターを渡す方法6:59
  • 22_DataGridをダブルクリックで選択行をViewModelに渡す方法3:25
  • 23_新規追加と編集モードでReaOnlyを切り替える3:45
  • 24_ステータスバーをバインディングする方法15:29
  • 25_ステータスバーをすべての画面で共通化する6:58
  • 26_ボタンのデータバインディング9:00
  • 27_その他のバインディングと奥の手5:37
  • 28_全体のまとめ12:12
  • 29_不具合修正0:37
  • 30_さいごに2:04
  • ソースコード0:02
  • 補講01_Chartのデータバインディングのやり方12:15
  • 補講02_Chartのデータバインディング_ViewModelに移動9:11
  • 補講03_Chartのデータバインディング_Seriesにバインドする方法5:14
  • 補講03B_Chartのデータバインディング_Seriesにバインドする方法2:42
  • 補講04_フォームを閉じるときの問い合わせメッセージの対応4:40
  • 補講05_DataSourceUpdateModeについて7:38
  • 補講06_データグリッドの選択行をバインドする方法4:14
  • 補講07_SelectedIndexChangedのバインディング(音無し)2:11
  • 補講08_Disposeについて5:18
  • 補足09_ViewのDisposeについて1:52
  • 補足10_AddDaysしても日付が変わらない2:59
  • 補講11_TextBoxChangedのデータバインド6:18
  • 補講12_Closeのデータバインドをする方法7:19
  • 補講13_Focusをバインドする方法_項目名のプロパティ編7:20
  • 補講14_Focusをバインドする方法_ActiveControlプロパティ編7:05
  • 補講15_Focusをバインドする方法_Action編4:10
  • 補講16_Focusをバインドする方法_Action編をテストコードの観点で考える2:39
  • 補講17A_UserControlのデータバインド5:23
  • 補講17B_UserControlのデータバインド5:14
  • 補講17C_UserControlのデータバインド7:11
  • 補講18_DataTableのデータバインド7:31
  • 補講19_DataGridViewに新しい行を追加する4:02
  • QA対応0:04
  • ボーナスレクチャー0:15

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フォームでチームで統一したコーディングを行いたい方