0

子グリッドを持つ FlexGrid である ComponentOne DataTree を使用しています。親グリッドには、チェックボックスである「選択」列と読み取り専用の別の列の 2 つの列があります。子グリッドには 5 つの列があります。最初はチェックボックスで、残りの 4 つは読み取り専用です。デフォルトでは、読み取り専用の列は灰色で表示されます。グリッドのデータ ソースである DataTable 列を ReadOnly に設定します。ヘッダー以外の列の背景をデフォルトで白にしたい。どちらのグリッドも更新されません。

スタイルをメンバー変数として定義し、Initialize メソッドでスタイルを作成します。

C1.Win.C1FlexGrid.CellStyle defaultRowStyle;
 private void InitializeControls()
    {
        txtWorkZone.Enabled = true;
        txtWorkZone.Focus();

        defaultRowStyle = c1flxdatatreeCasePick.Styles.Add("DefaultRowStyle");
        defaultRowStyle.BackColor = Color.White;
    }

これを設定する OwnerDrawCell メソッドは次のとおりです。

 private void c1flxdatatreeCasePick_OwnerDrawCell(object sender, OwnerDrawCellEventArgs e)
    {
        C1FlexDataTree grid = sender as C1FlexDataTree;
        if (grid == null || grid.DataSource == null)
            return;

        if(e.Row > 0)
            grid.Rows[e.Row].Style = grid.Styles["DefaultRowStyle"];

        //Get the child grid
        C1FlexDataTree childGrid = grid.Rows[e.Row].UserData as C1FlexDataTree;

        if (childGrid != null)
        {
            if(e.Row > 0)
                 childGrid.Rows[e.Row].Style = grid.Styles["DefaultRowStyle"];                 
        }
    }

グリッドが行スタイル設定を取得しないのはなぜですか?

ありがとうグロリア

4

1 に答える 1