PowerTools MultiRow for Windows Forms 8.0J > InputManCellの使い方 > GcComboBoxCell > 項目の設定 > データソースに接続 |
データソースを使用してGcComboBoxCellのリストボックスに項目を設定する方法について解説します。Itemsプロパティにコレクションを追加して項目を設定する方法については「コレクションに追加」を参照してください。なお、接続するデータベースは、製品に付属しているSample.mdbを前提にしています。
データベース内のデータをリストボックスに表示する場合は、DataSourceプロパティに該当するデータセットを設定します。 |
データ ソース構築ウィザードを使用してプロジェクトにデータソースを追加します。
データベース内のデータをGcComboBoxCellに表示する場合は、データベースから作成したDataSetをDataSourceプロパティに設定します。
なお、MultiRowのテンプレートでは、データ連結の設定を行っても、テンプレートのコードにTableAdapterのFillメソッドの処理が自動生成されませんので、Fillメソッドの処理を手動で設定する必要があります。
具体的には、テンプレートのコードに次の処理を追加します。
Public Class Template1 Public Sub New() InitializeComponent() InitializeTemplate() End Sub Private Sub InitializeTemplate() Me.会社TableAdapter.Fill(Me.SampleDataSet.会社) End Sub End Class
namespace xxxxxxxx { public sealed partial class Template1 : GrapeCity.Win.MultiRow.Template { public Template1() { InitializeComponent(); InitializeTemplate(); } private void InitializeTemplate() { this.会社TableAdapter.Fill(this.sampleDataSet.会社); } } }
以下は、コーディングでデータベースの内容をGcComboBoxCellに表示する例です。
Imports System.Data.OleDb Imports GrapeCity.Win.MultiRow Imports InputManCell = GrapeCity.Win.MultiRow.InputMan ' DataSetオブジェクトを作成します。 Dim aConn As OleDbConnection = New OleDbConnection( _ "Provider=Microsoft.Jet.OLEDB.4.0;" _ + "Data Source= C:\Program Files\MultiRowWin8\Data\Sample.mdb;") Dim aDA As OleDbDataAdapter = New OleDbDataAdapter( _ "SELECT * FROM [会社]", aConn) Dim aDS As DataSet = New DataSet() aDA.Fill(aDS) Dim GcComboBoxCell1 = New InputManCell.GcComboBoxCell() ' DataSetオブジェクトを設定します。 GcComboBoxCell1.DataSource = aDS.Tables(0) GcMultiRow1.Template = Template.CreateGridTemplate(New Cell() {GcComboBoxCell1})
using System.Data.OleDb; using GrapeCity.Win.MultiRow; using InputManCell = GrapeCity.Win.MultiRow.InputMan; // DataSetオブジェクトを作成します。 OleDbConnection aConn = new OleDbConnection( "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source= C:\\Program Files\\MultiRowWin8\\Data\\Sample.mdb;"); OleDbDataAdapter aDA = new OleDbDataAdapter( "SELECT * FROM [会社]", aConn); DataSet aDS = new DataSet(); aDA.Fill(aDS); InputManCell.GcComboBoxCell gcComboBoxCell1 = new InputManCell.GcComboBoxCell(); // DataSetオブジェクトを設定します。 gcComboBoxCell1.DataSource = aDS.Tables[0]; gcMultiRow1.Template = Template.CreateGridTemplate(new Cell[] { gcComboBoxCell1 });
特定フィールドのデータのみ表示する場合は、AutoGenerateColumnsプロパティをFalseに設定します。カラムを追加し、バインドするデータのプロパティ名をListColumnクラスのDataPropertyNameプロパティで設定します。
カラムを追加する方法については「カラムの設定」を参照してください。
次のサンプルコードでは、前項で接続したデータソース(会社テーブル)の特定のデータをコンボコントロールのドロップダウンリストに表示する例を示します。
' 自動カラム生成を禁止し、データソースに接続します。 GcComboBoxCell1.AutoGenerateColumns = False GcComboBoxCell1.DataSource = aDS.Tables(0) ' カラムを作成します。 Dim lc1 As New GrapeCity.Win.MultiRow.InputMan.ListColumn("会社名") lc1.DataPropertyName = "会社名" Dim lc2 As New GrapeCity.Win.MultiRow.InputMan.ListColumn("電話番号") lc2.DataPropertyName = "TEL" ' コンボコントロールにカラムを追加します。 GcComboBoxCell1.ListColumns.Add(lc1) GcComboBoxCell1.ListColumns.Add(lc2) GcMultiRow1.Template = Template.CreateGridTemplate(New Cell() {GcComboBoxCell1})
// 自動カラム生成を禁止し、データソースに接続します。 gcComboBoxCell1.AutoGenerateColumns = false; gcComboBoxCell1.DataSource = aDS.Tables[0]; // カラムを作成します。 GrapeCity.Win.MultiRow.InputMan.ListColumn lc1 = new GrapeCity.Win.MultiRow.InputMan.ListColumn("会社名"); lc1.DataPropertyName = "会社名"; GrapeCity.Win.MultiRow.InputMan.ListColumn lc2 = new GrapeCity.Win.MultiRow.InputMan.ListColumn("電話番号"); lc2.DataPropertyName = "TEL"; // コンボコントロールにカラムを追加します。 gcComboBoxCell1.ListColumns.Add(lc1); gcComboBoxCell1.ListColumns.Add(lc2); gcMultiRow1.Template = Template.CreateGridTemplate(new Cell[] { gcComboBoxCell1 });