开发者

Insert a default row into a combobox that is bound to a datatable?

开发者 https://www.devze.com 2023-01-02 23:16 出处:网络
On a winform there is a combobox that derives its information from a datatable.The datatable draws from a database list.

On a winform there is a combobox that derives its information from a datatable. The datatable draws from a database list.

this.cboList.DataSource = pullData();
this.cboList.DisplayMember = "fieldA";

Once the DataSource is s开发者_Go百科et I am not able to insert a default row (ie *) as the first item in the combobox.

I tried this:

this.cboList.Items.Insert(0,"*");

Is there a way to insert in the combobox after the datasource is set or should this be done in the datatable?

UPDATE1:

The solution looks something like this:

 var list = mydt.AsEnumerable().Select(row => row.Field<string>(fieldName)).ToList();
 list.Insert(0, "*");

Where mydt is a populated datatable and fieldName is a variable holding the database field name.


Don't modify your data at the source just to make your UI work. Instead, perhaps extract your column into a list that you can modify before attaching it to the combo box.

var list = table.AsEnumerable().Select(row => row.Field<string>("fieldA")).ToList();
list.Insert(0, "*");
this.cboList.DataSource = list;


If a "Select None", or "*" is a valid select option it needs to come from the binding source object. I have done this in the past by adding a default record to a collection before binding it to a combo box.

0

精彩评论

暂无评论...
验证码 换一张
取 消