WindowsFormsアプリでDataTableとDataBindingsを使ったサンプル

以下はWindowsFormsアプリでMVVMパターンを実装したサンプルコードです

用語

DataTable

DataTableは、.NET Frameworkの一部であり、メモリ内のデータを表形式で保持するために使用されるオブジェクトです。DataTableは、列の定義と行のデータを格納することができます。データのソート、フィルタリング、検索などの機能を持ち、データベースのテーブルに相当する機能を提供します。

DataTableには、列を定義するためのColumnsプロパティがあります。Columnsプロパティには、DataColumnオブジェクトが含まれており、各列の名前、データ型、制約などを定義します。また、行のデータは、DataTableのRowsプロパティに格納されています。Rowsプロパティには、DataRowオブジェクトが含まれており、各行のデータを表します。

DataBinding

DataBindingsとは、Windowsフォームアプリケーションにおいて、データソースとコントロールを結びつけるための機能です。DataBindingsを使用することで、コントロールの値をデータソースに反映したり、データソースの変更を自動的に反映したりすることができます。

DataBindingsは、コントロールのDataBindingsプロパティを使用して設定されます。DataBindingsプロパティには、データソースのプロパティ名、データソースのオブジェクト、およびデータソースとコントロールの変換を指定するオプションのオブジェクトが含まれます。たとえば、TextBoxコントロールを使用してデータソースの値を表示する場合、以下のようにDataBindingsを設定することができます。

サンプル概要

以下は、DataTableとTextBoxとDataBindingsを使用したサンプルコードです。このサンプルでは、DataTableにデータを追加し、追加したデータをTextBoxに表示する処理を行います。

実行結果

実行すると、TextBoxにName情報が表示されます

フォームデザイン

TextBoxを配置します

ソリューション

コード

// フォームのLoadイベントハンドラー
private void Form1_Load(object sender, EventArgs e)
{
    // DataTableを作成する
    DataTable dt = new DataTable();
    dt.Columns.Add("Id", typeof(int));
    dt.Columns.Add("Name", typeof(string));

    // データを追加する
    dt.Rows.Add(1, "Apple");
    dt.Rows.Add(2, "Banana");
    dt.Rows.Add(3, "Orange");

    // TextBoxにDataBindingsを設定する
    textBox1.DataBindings.Add("Text", dt, "Name");

    // 最初のデータを表示する
    textBox1.Text = dt.Rows[0]["Name"].ToString();
}

このサンプルでは、DataTableを作成し、3つのデータを追加しています。次に、TextBoxのDataBindingsプロパティに"Name"列をバインドします。最後に、TextBoxにDataTableの最初のデータを表示するように設定しています。

これにより、フォームがロードされた時に、TextBoxに"Apple"という文字列が表示されます。また、ユーザーが別のデータを選択した場合、自動的にTextBoxの表示内容も変わります。例えば、ComboBoxなどのコントロールから選択されたデータをDataTableに反映する場合も同様に、DataBindingsを使用して簡単に実現できます。