2012-07-07 10 views
13

コンボボックスがdataset.iからバインドされた後に「選択」を挿入する必要があります。thisを試しましたが、動作していません。 "データセットにはキャストの定義。私はそれを正しく使用していないと思います。私は試してみましたが動作していない部分です。コンボボックスのアイテムをCでデータセットからバインドした後に挿入します。

cmbCategory.DataSource = dsCat.Tables[0]; 
cmbCategory.DisplayMember = "CategoryName"; 
cmbCategory.ValueMember = "ID"; 
// cmbCategory.Items.Add("Select"); 
// cmbCategory.SelectedText = "Select"; 
// cmbCategory.DataSource =(new object[] { "Select" }).Concat(this.liveReportingDalc.GetCategoriesByType(CategoryType.RegistrationType).Cast<object>()); 

答えて

20

あなたは、コンボボックスではなくデータバインドするオブジェクトに挿入する必要があります。あなたはコンボボックスに直接挿入することはできません。

あなたはこれを使用することができます:これは非常にまっすぐ進むの例である

DataTable dt = new DataTable(); 

dt.Columns.Add("ID", typeof(int)); 
dt.Columns.Add("CategoryName"); 

cmbCategory.DisplayMember = "CategoryName"; 
cmbCategory.ValueMember = "ID"; 
cmbCategory.DataSource = dt; 

DataRow dr = dt.NewRow(); 
dr["CategoryName"] = "Select"; 
dr["ID"] = 0; 

dt.Rows.InsertAt(dr, 0); 
cmbCategory.SelectedIndex = 0; 

+0

あなたの提案した方法を試しましたが、 'CODE'という名前の列はすでにこのDataTableに属しています。 – sam

6

ComboBoxをデータソースにバインドして追加することはできません。バインドされたデータソースを使用してComboBoxのアイテムを追加または削除するには、データソース自体を使用して行う必要があります。

テーブルにDataRowを挿入すると、自動的にComboBoxに追加されます。以下を試してください:

DataRow dr = dsCat.Tables[0].NewRow(); 
dr["CategoryName"] = "Select"; 
dr["ID"] = 123;// Some ID 
dsCat.Tables[0].Rows.Add(dr); 
+0

dsCat.Tables [0] .Add(dr)のAddメソッド。動かない。 – abramlimpin

+0

@abramlimpinテーブルの[行]プロパティで[追加]を呼び出す必要があります。私はそのアップデートでコードを編集しました – user

0
// cmbCategory.DataSource =(new object[] { "Select" }).Concat(this.liveReportingDalc.GetCategoriesByType(CategoryType.RegistrationType).Cast<object>()); 

これは可能ですが、何らかの理由で構文が間違っている可能性があります。

あなたがそれを見つけてからインライン関数に戻すまで分割することができます。

List <object> catData = new List <object> { "Select" }; 

DataSet catByType = this.liveReportingDalc.GetCategoriesByType(CategoryType.RegistrationType); 

foreach(DataRow oRow in catByType.Tables[0].Rows) 
{ catData.Add(oRow.ItemArray[0]); } 

しかし、あなたがGetCategoriesByType関数から戻ってくるデータのご理解を統合する必要があり、これが動作するために。オブジェクトは「選択」のようなテキストですか?

関連する問題