Ultimate UI for Windows Forms 2005 Volume 2 の WinTree には、列サポートに加えて、コントロールのバインド機能も追加されました。DataSource プロパティと DataMember プロパティを使用してルート ノード コレクションをバインドできます。また、ノード コレクションの SetDataBindingMethod を使用して、特定のノードの Nodes コレクションの内容をバインドすることもできます。WinTree は IList または IBindingList データソースにバインド可能で、AutoGenerateColumnSets を True に設定すれば、UltraTreeColumnSet と UltraTreeNodeColumn オブジェクトをデータソースに基づいて自動的に生成できます。
このトピックでは、WinTree を DataSet または DataTable にバインドする方法について説明します。この例では型指定のない DataSet を使用してデータソースを作成しますが、型指定された DataSet(例:Visual Studio のサーバー エクスプローラを使用して作成した DataSet)に WinTree をバインドすることも可能です。
新しい Windows アプリケーションを作成し、デザイン ビューでフォームを開きます。ツールボックスから WinTree をフォームに追加し、その Dock プロパティをFillに設定します。
WinTree をプロジェクトに追加すると、次の 3 つの参照が追加されます。
Infragistics.Shared.v24.1
Infragistics.Win.UltraWinTree.v24.1
Infragistics.Win.Win.v24.1
ツールボックスから DataSet をフォームに追加します。[Add DataSet] ダイアログが表示されたら、[型指定のないデータセット] を選択して [OK] をクリックします。これで、"dataSet1" という名前の DataSet インスタンスが生成されます。
dataSet1 を右クリックして [Properties] を選択します。プロパティ グリッドで Tables プロパティを選択し、省略記号(…)ボタンをクリックします。テーブル コレクション エディタが表示されたら、[追加] をクリックし、TableName プロパティを "Customers" に変更します。
次に、Customers DataTable の列を定義します。Columns プロパティを選択して省略記号(…)ボタンをクリックし、列コレクション エディタを表示します。
[追加] ボタンをクリックして新しい列を作成し、その ColumnName プロパティを "Last Name" に変更します。同様に、"First Name"、"Middle Name"、"Title"の 3 つの列をデータテーブルに作成します。[OK] をクリックして列エディタを閉じ、もう一度 [OK] をクリックしてデータテーブル エディタを閉じます。
この DataSet スキーマを WinTree のデータソースとして設定するには、WinTree を右クリックして [Properties] を選択します。プロパティ グリッドで DataSource プロパティを選択し、ドロップダウン矢印をクリックします。作成した DataSet(例:dataSet1)を選択します。WinTree に "Customers" バンドを表す単一ルート ノードが表示されます。これは"バンド"ノードと呼ばれる特殊なタイプのバインド ノードで、基になるデータソースに含まれるリストの名前を表示します。このノードの展開インジケータをクリックすると、作成した列構造が表示されます。ここまでで、ツリーは次のスクリーンショットのようになります。
ここで、プロパティ グリッドで DataMember プロパティを選択し、ドロップダウン矢印からデータソースで定義したバンド(例:"Customers")を選択できます。こうすると、バンドノードが削除され、グリッド構造がルート レベルに表示されます。