Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Programmatically generate and assign ComboBox DataSource

I have a ComboBox named cmbWeekDays, a WeekDay class:

public class WeekDay
{ 
    public int Index;
    public string DayName;
}

and this FormLoad event:

List<WeekDay> days = new List<WeekDay>();
days.Add(new WeekDay { DayName = "Sat", Index = 1 });
days.Add(new WeekDay { DayName = "Sun", Index = 2 });
days.Add(new WeekDay { DayName = "Mon", Index = 3 });
days.Add(new WeekDay { DayName = "Tue", Index = 4 });
days.Add(new WeekDay { DayName = "Wed", Index = 5 });
days.Add(new WeekDay { DayName = "Thu", Index = 6 });
days.Add(new WeekDay { DayName = "Fri", Index = 7 });

cmbxWeekDays.DataSource = days;
cmbxWeekDays.DisplayMember = "DayName";
cmbxWeekDays.ValueMember = "Index";
cmbxWeekDays.Refresh();

I don't know why I get this weird result:

output image

Can any one explain me what's happening? and also how to overcome this issue?

like image 710
Mahdi Tahsildari Avatar asked Jun 10 '26 04:06

Mahdi Tahsildari


1 Answers

Data binding works with properties only. So, you have to declare properties in your data source class instead of fields:

public class WeekDay
{
    public int Index { get; set; }
    public string DayName { get; set; }
}
like image 95
Dennis Avatar answered Jun 13 '26 17:06

Dennis



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!