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:

Can any one explain me what’s happening? and also how to overcome this issue?
Data binding works with properties only. So, you have to declare properties in your data source class instead of fields: