2

誰かがこれで私を助けてくれますか? 通常の GridView では非常に単純なのに、なぜこれが難しいのでしょうか。

プログラムで行を追加しようとしています。通常の GridView では、gridView.Rows を呼び出してそこから追加するだけですが、ここではそのオプションが見つかりません。

DataTable を作成してから、次のようにバインドしようとしました。

        DataTable dt = new DataTable();
        dt.Columns.Add("IP", Type.GetType("System.String"));
        dt.Columns.Add("Port", Type.GetType("System.String"));
        dt.Columns.Add("Username", Type.GetType("System.String"));
        dt.Columns.Add("Password", Type.GetType("System.String"));
        dt.Columns.Add("Working?", Type.GetType("System.Boolean"));

        for (int i = 0; i < 20; i++)
        {
                        DataRow dr = dt.NewRow();
                        dr[0] = "Test";
                        dr[1] = "Test";
                        dr[2] = "Test";
                        dr[3] = "Test";
                        dr[4] = true;
                        dt.Rows.Add(dr);
        }


        gcProxies.DataSource = dt;

GridControl に空の行を追加しただけです。

何か案は?

4

2 に答える 2

5

問題は、デザイナーで列を作成した後、コード ビハインドがそれをオーバーライドしなかったことです。

DataTable をグリッドにデータ バインドするだけでなく、任意のデータを表示するか、式に基づいてデータを表示するバインドされていない列を含めることもできます。非バインド列を作成するための基本的な例を次に示します:方法: 非バインド列を追加する

サンプルでは、​​データソースを設定した後にバインドされていない列を追加できます。

gcProxies.DataSource = dt;

// Create an unbound column.
DevExpress.XtraGrid.Columns.GridColumn unbColumn = gridView1.Columns.AddField("Total");
unbColumn.VisibleIndex = gridView1.Columns.Count;
unbColumn.UnboundType = DevExpress.Data.UnboundColumnType.Decimal;
// Disable editing.
unbColumn.OptionsColumn.AllowEdit = false;
// Specify format settings.
unbColumn.DisplayFormat.FormatType = DevExpress.Utils.FormatType.Numeric;
unbColumn.DisplayFormat.FormatString = "c";
gridView1.CustomUnboundColumnData += gridView1_CustomUnboundColumnData;

次に、バインドされていない列を埋めるイベントを次に示します。

    void gridView1_CustomUnboundColumnData(object sender,
               DevExpress.XtraGrid.Views.Base.CustomColumnDataEventArgs e)
    {
        if (e.Column.FieldName == "Total" && e.IsGetData) 
            e.Value = 100;
    }

これらの例は、正確なソリューションのカスタマイズを開始するのに役立ちます。

于 2012-04-14T16:58:45.067 に答える
4

私はあなたと同様の問題に直面しており、追加することで解決しました

gcProxies.PopulateColumns();

もう 1 つ、DataSource は減価償却されているため、代わりに ItemSource に切り替えてください。

于 2012-10-18T07:18:22.230 に答える