开发者

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

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

上一篇:

下一篇:

精彩评论

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

最新问答

问答排行榜