このプロジェクトではプログラムを使って生成された DataTable(フラットデータ)とこの DataTable を WinGrid コントロールにバインドする方法について紹介します。
このチュートリアルでは以下の方法を説明します。
DataTable をプログラムで作成します。
DataTable に列を追加します。
DataTable のプライマリ キーを指定します。
DataTable に行を追加します。
DataTable を UltraGrid にバインドします。
最終的に以下のようなフォームになります:
Visual Basic または C# Windows Application プロジェクトを新しく作成します。
ツールボックスの Windows Forms タブから Button をフォーム上に配置し、Text プロパティを [フラット データの作成とバインド] に設定します(位置配置は上記のスクリーンショットを参照してください) 。
ツールボックスの Infragistics タブから UltraGrid をフォームに追加します。
ソリューション エクスプローラの References ノードで Infragistics.Shared、Infragistics.Win、および Infragistics.Win.UltraWinGrid の参照を追加します。
手順
[フラット データの作成とバインド] ボタンの Click イベントに応答するサブ プロシージャを追加し、次のコードをプロシージャに追加します。
Visual Basic の場合:
Private Sub UltraButton1_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles UltraButton1.Click
' プログラムが生成したデータを格納する DataTable を宣言します
Dim dataTable As New DataTable("TableTest")
' CustomerID 列を作成して追加します
Dim colWork As New DataColumn("CustomerID", GetType(Int32))
dataTable.Columns.Add(colWork)
' CustomerID 列をキー配列に追加し、DataTable にバインドします
Dim Keys(0) As DataColumn
Keys(0) = colWork
dataTable.PrimaryKey = Keys
' CustomerName 列を作成して追加します
colWork = New DataColumn("CustomerName", GetType(String))
colWork.MaxLength = 50
dataTable.Columns.Add(colWork)
' LastOrderDate 列を作成して追加します
colWork = New DataColumn("LastOrderDate", GetType(Date))
dataTable.Columns.Add(colWork)
' 行を追加します
Dim row As DataRow = dataTable.NewRow()
row("CustomerID") = 1
row("CustomerName") = "John's Widgets"
row("LastOrderDate") = Now
dataTable.Rows.Add(row)
' もう 1 行追加します
row = dataTable.NewRow()
row("CustomerID") = 2
row("CustomerName") = "Fred's Thingamagigs"
row("LastOrderDate") = Now.AddDays(-101)
dataTable.Rows.Add(row)
' 表をグリッドにバインドします
Me.UltraGrid1.DataSource = dataTable
End Sub
C# の場合:
private void ultraButton1_Click(object sender, System.EventArgs e)
{
// プログラムが生成したデータを格納する DataTable を宣言します
DataTable dataTable = new DataTable("TableTest");
// CustomerID 列を作成して追加します
DataColumn colWork = new DataColumn("CustomerID", System.Type.GetType("System.Int32"));
dataTable.Columns.Add(colWork);
// CustomerID 列をキー配列に追加し、DataTable にバインドします
DataColumn[] Keys = new DataColumn[1];
Keys[0] = colWork;
dataTable.PrimaryKey = Keys;
// CustomerName 列を作成して追加します
colWork = new DataColumn("CustomerName", System.Type.GetType("System.String"));
colWork.MaxLength = 50;
dataTable.Columns.Add(colWork);
// LastOrderDate 列を作成して追加します
colWork = new DataColumn("LastOrderDate", System.Type.GetType("System.DateTime"));
dataTable.Columns.Add(colWork);
// 行を追加します
DataRow row = dataTable.NewRow();
row["CustomerID"] = 1;
row["CustomerName"] = "Johns Widgets";
row["LastOrderDate"] = System.DateTime.Now;
dataTable.Rows.Add(row);
// もう 1 行追加します
row = dataTable.NewRow();
row["CustomerID"] = 2;
row["CustomerName"] = "Freds Thingamagigs";
row["LastOrderDate"] = System.DateTime.Now.AddDays(-101);
dataTable.Rows.Add(row);
// 表をグリッドにバインドします
this.ultraGrid1.DataSource = dataTable;
}
プロジェクトをビルドして実行します。フォームを表示します。
[フラット データの作成とバインド] を押すと、プログラムで生成されたフラット データが UltraGrid に表示されます。
このチュートリアルでは DataTable をコードから作成し、UltraWinGrid にバインドする方法を示しました。