3

WeekDayクラス である cmbWeekDays という名前の ComboBox があります。

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

そして、この FormLoad イベント:

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();

なぜこの奇妙な結果が得られるのかわかりません:

出力画像

何が起こっているのか説明してくれる人はいますか?また、この問題を克服する方法は?

4

2 に答える 2

2

データバインディングはプロパティでのみ機能します。したがって、フィールドではなくデータソースクラスでプロパティを宣言する必要があります。

public class WeekDay
{
    public int Index { get; set; }
    public string DayName { get; set; }
}
于 2012-12-19T05:54:26.353 に答える
0

次の方法を試してみてください。私も同じ問題に直面しています。しかし、私は最後に cmbyear.Databind() を書きました。ので、一度お試しください。

 DropDownList cmbYear = new DropDownList();
        cmbYear.DataSource = days;  
        cmbYear.DataTextField = "Year";
        cmbYear.DataValueField = "YearID";
        cmbYear.DataBind();
于 2012-12-19T06:16:37.927 に答える