I have a class which give me this error
public class Item
{
public string Name;
public int Id
public Item(string name, int id)
{
Name = name;
Id = id;
}
}
Here is my function
var lstItems = new List<Item>();
while(...)
{
lstItems.Add(new Item(sAd_Ref, Convert.ToInt32(sAd_ID)));
}
comboBox1.DataSource = lstItems;
comboBox1.ValueMember = "Id";
comboBox1.DisplayMember = "Name";
On second to the last line I am getting exception of
Cannot bind to the new display member.
I know the post is old but the accepted answer is not correct. The Op needed to change the order of how he was assigning displayMember, valueMember and Datasource and then note the added line of code.
comboBox1.DisplayMember="Name";
comboBox1.ValueMember = "Id";
comboBox1.DataSource = lstItems;
comboBox1.BindingContext = this.BindingContext;
You should make Name
and Id
properties. You can't bind ComboBox
to fields.
public string Name { get; set; }
public int Id { get; set; }
It's also stated in docs:
ValueMember Property
: Gets or sets the property to use as the actual value for the items in the System.Windows.Forms.ListControl.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With