0

XtraGrid を Winform にドロップしました。ID、StartTime、EndTime という名前の 3 つのバインドされていない列を作成し、バインドされていない型をそれぞれ Int、DateTime、DateTime に設定しました。クラスを作成しました:


public class Data
{
    public Data(int id, DateTime startTime, DateTime endTime)
    {
        this.id = id;
        this.startTime = startTime;
        this.endTime = endTime;
    }
    private int id;
    private DateTime startTime;
    private DateTime endTime;
    public int ID
    {
        get { return id; }
        set { id = value; }
    }
    public DateTime StartTime
    {
        get { return startTime; }
        set { startTime = value; }
    }
    public DateTime EndTime
    {
        get { return endTime; }
        set { endTime = value; }
    }
}

フォームコンストラクターでリストを作成し、実行時にリストをグリッドコントロールにバインドします

        List<Data> list = new List<Data>();
        list.AddRange(new Data[] {
                    new Data(1, Convert.ToDateTime("1:00:00 AM"),
                    Convert.ToDateTime("3:00:00 AM")),
                    new Data(2, Convert.ToDateTime("8:00:00 PM"),
                    Convert.ToDateTime("8:30:00 PM")),
                    new Data(3, Convert.ToDateTime("12:00:00 PM"),
                    Convert.ToDateTime("1:00:00 AM")),
                    new Data(4, Convert.ToDateTime("2:00:00 AM"),
                    Convert.ToDateTime("3:00:00 AM"))
                    });
        gridControl1.DataSource = list; 

アプリケーションを実行すると、空のグリッドが表示されます。どういうわけか、設計時に作成した列に、実行時にデータが正しく入力されません。設計時に列を作成せずに同じことを試み、アプリケーションは正しく入力されたデータで実行されます。私は何かが欠けています。

問題をデバッグする、または問題を解決するためのアイデアは非常に高く評価されます。前もって感謝します

4

1 に答える 1

2

列の FieldName プロパティを ID、StartTime、EndTime に設定します (大文字と小文字を区別します!!!!)。また、コードを移動して、グリッドの DataSource をフォームの Load イベントに設定することをお勧めします。これはあなたを助けるはずです。

于 2011-03-30T12:50:51.527 に答える