我正在使用一个 ComponentOne DataTree,它是一个带有子网格的 FlexGrid。父网格有 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"];
}
}
为什么网格不会获得行样式设置?
谢谢格洛丽亚