0

DevExpress で WinForm アプリケーションを作成しました。これは私のコード (C#) の一部です。

public partial class XtraForm1 : DevExpress.XtraEditors.XtraForm
{
    private DataTable _Tbl;
    private DataTable CreateTable(int RowCount)
    {
        _Tbl = new DataTable();
        _Tbl.Columns.Add("New Field", typeof(string));

        for (int i = 0; i < RowCount; i++)
            _Tbl.Rows.Add(new object[] { });

        return _Tbl;
    }




    int i = 0;

    private void simpleButton1_Click_1(object sender, EventArgs e)
    {
        i++;
        int index = i % _Tbl.Columns.Count;
        DevExpress.XtraGrid.Columns.GridColumn col = gridView1.Columns.AddVisible(_Tbl.Columns[index].ColumnName);
        col.Name = "Column_{0}" + i;
                }

    public XtraForm1()
    {

        InitializeComponent();
        gridControl1.DataSource = CreateTable(20);
        gridView1.Columns.Clear();

    }
}

コードは実行時にボタンが押されたときに列を作成します。私の質問は、実行時に選択されたデータベース内の選択されたテーブルから選択された列を使用して、XtraGrid で選択された列を任意の DBMS からのデータとバインドする方法です。

私の悪い英語でごめんなさい。皆さんが私を助けてくれることを願っています。ありがとう

4

1 に答える 1

0

DataTable 列の名前を GridColumn の FieldName プロパティに設定する必要があります。

私があなたを正しく理解しているなら、これは役立つはずです:

private void simpleButton1_Click_1(object sender, EventArgs e)
{
    i++;
    int index = i % _Tbl.Columns.Count;
    DevExpress.XtraGrid.Columns.GridColumn col = gridView1.Columns.AddVisible(_Tbl.Columns[index].ColumnName);
    col.Name = "Column_{0}" + i;
    col.FieldName = "Column_{0}" + i";
}

FieldName プロパティは、データを見つける場所をグリッドに伝えます。List を DataSource として使用する場合、これは DataColumn の Name または Property の名前になります。

于 2013-02-18T08:27:01.423 に答える