本サイトはアフィリエイト広告を使用しています

c# DataGridView バインド プログラミング

【バインド】DataGridViewでBindingSourceを使ってデータバインドし表示する方法

DataGridViewにある特定のクラスをバインドし、データを表示させる方法を紹介します。

ここでは「BindingSource」を使った方法を紹介します。

 

バインドとは

「紐づけ・関連付け」の事。


【バインド】DataGridViewでBindingSourceを使ってデータバインドし表示する方法

今回、サンプルソースとして以下のような画面を作って説明します。

DataGridViewにデータバインド

  • DataGridView:1個
  • ボタン:2個

これだけの画面です。

DataGridViewにデータバインドする方法

BindingSource を配置する

「BindingSource」というものを使用します。

DataGridViewと表示したいデータを結びつけるものです。

参考ページ【Microsoft】BindingSource クラス

 

ツールボックスから「BindingSource」を選択し、フォーム下のスペースをクリックします。

※フォーム上に、ドラッグ&ドロップでもOKです。

bindingsourceの配置

すると、「bindBindingSource」というのが追加されたのが分かると思います。

 

名前は好きに変えてOKです。

DataGridViewのDataSourceにBindingSourceを関連づける

画面上でDataGridViewを選択します。

その後、プロパティからDataSourceを探します。

DataSourceに先ほど追加した「bindBindingSource」を選択します。

DataGrieViewのDataSourceにBIndingSourceを設定する

これでOKです。

DataGridViewに表示したいデータのクラスを作成する

DataGridViewに表示したいデータとして、この例では以下のような「Bindクラス」というものを作成しました。

Bindクラスでもっている、プロパティ3つ(string型、int型)を表示させてみます。

 

Bindクラスのコードはこんな感じ。

DataGridViewのバインド列のプロパティ名を設定する

DataGridViewに戻ります。

 

DataGridViewの上で「右クリック」→「列の編集」を選択します。

すると以下のような画面が表示されます。

DataGridViewのバインド列を設定

左側の「選択された列」欄に、表示したい列数分、列を追加します。

次の右側の「DataProperyName」に、さきほど作成したBindクラスのプロパティ名を入力します。

※名前が間違っていると、DataGridViewに表示されなくなるので注意してください。

 

これでOKです。

BindingSourceのDataSourceにBindクラスのリストを関連付ける

コンストラクタで以下のようなコードを書きました。

 

以下のコードで、BindingSourceとBindクラスのリストを関連づけています。

これが無いとDataGridViewにデータを表示することができません。

バインドするデータ(Bindクラス)を生成する

DataGridViewに表示したいデータ(Bindクラス)を生成します。

 

ソースコードはこんな感じにしました。

画面上に配置した、上ボタンをクリックしたときのイベントです。

ボタンがクリックされると「Bindクラス」を new し、Col1、Col2、Col3のプロパティに適当な値を設定。

先ほどコンストラクタで new した List に追加しています。

バインドデータの再読み込み(ResetBindings)

続いて、下ボタンのクリック処理です。

ソースコードは以下。

BindingSourceの「ResetBindings」をよんであげます。

 

このボタンをクリックすると、DataGridViewにデータが表示されると思います。

上ボタンの「バインドデータ作成」を何回か押し、下ボタンのリセットバインドすると、DataGridViewに更新されたデータが表示されるのが確認できると思います。

 

これで完了です。

まとめ|DataGridViewにデータバインドし表示する方法

今回のトピックは以下の通りです。

  • BindingSourceを使用する
  • BindingSourceと表示したいクラスを関連づける
  • BindingSourceにResetBindingsで表示データを更新する

 

バインドというと一見難しそうですが、実際やってみると結構簡単です。

是非参考にしてみてください。

【必見】C# 初心者におすすめの参考書

  • はじめの1冊に最適
  • 手元に置いておきたい独習シリーズ
created by Rinker
¥490 (2024/11/21 06:54:35時点 Amazon調べ-詳細)
  • 名著。技術屋なら必読。繰り返しよむことで確実にレベルアップ。

-c#, DataGridView, バインド, プログラミング