1

让我们把这里的情况弄清楚。让我们有一个 WIN 形式的 devexpress 的 gridview 控件。让我们将网格的偶数行的外观设置为 backcolor = color.whiteSmoke(比如帮助用户轻松区分行)。我们在设计时这样做。现在,让我们以编程方式将一些符合我在事件中的条件的行涂成红色:gridView_RowStyle。

问题是偶数行,匹配我的条件仍然是白色烟雾?!?!?

这是否意味着偶数行的外观被覆盖为自定义外观???

我不明白。我应该怎么做才能使符合我条件的行显示为红色?

4

1 回答 1

1

好吧,很明显,是的,偶数行的外观被我在 RowStyle 事件中着色的行的外观所覆盖。

避免覆盖的解决方案是使用 DevExpress.XtraGrid.StyleFormatCondition 对象,同时以编程方式绑定网格,如下例所示:

this.gridControl.DataSource = dataTable;

DevExpress.XtraGrid.StyleFormatCondition styleFormatCondition1 = 
                new DevExpress.XtraGrid.StyleFormatCondition();

styleFormatCondition1.Appearance.BackColor = System.Drawing.Color.LightCoral;
styleFormatCondition1.Appearance.BackColor2 = System.Drawing.Color.SeaShell;
styleFormatCondition1.Appearance.Options.UseBackColor = true;
styleFormatCondition1.ApplyToRow = true;
styleFormatCondition1.Condition = DevExpress.XtraGrid.FormatConditionEnum.Equal;
styleFormatCondition1.Column = this.gridView.Columns["MY_COLUMN"];
styleFormatCondition1.Value1 = "0";

this.gridView.FormatConditions.AddRange(
                new DevExpress.XtraGrid.StyleFormatCondition[] {styleFormatCondition1});

这确实解决了我的问题。希望它可以帮助某人。

于 2009-09-22T15:29:06.380 回答