2012-11-02 40 views
3

我正在使用Infragistic的UltraGrid控件在WinForms中工作。我想这样做是为了让我激活的行显示使用与行的其余部分不同的背景色的单元格。为Infragistics UltraGrid中所选行上出现错误的单元格设置背景

目前,如果该行未激活,我会看到具有红色背景的错误单元格,并且验证的单元格具有白色背景。但是,当我选择该行并将其激活时,由于整行将背景设置为黄色,我看不到哪些单元格有错误。

我想看到的是,如果该行被激活,所有有效的单元格都是黄色的,并且所有无效的单元格都是红色的。如果没有无效的单元格,则所有单元格均为黄色。

目前,如果发现有错误,我将取消激活该行。只要用户不再次点击该行,这是有效的,这是一个非常蹩脚的假设。我研究过DisplayLayout.Override,它允许我在网格,band,行,列和单元格级别覆盖,但是当我在单元级别覆盖时,似乎行级别的设置仍然优先。

+0

如果您已经安装了完整的软件包(带有示例),您可以找到一个名为IDataErrorInfo的示例,该示例显然可以满足您的需求。 – Steve

+0

感谢您花时间看这个。在提供的示例之后,我仍然无法让错误的单元格在选择行时保留它的'错误'外观。这可能是也可能不是由于我正在使用的Infragistics版本(7.2)。 – kodjeff1

回答

2

Infragistics支持建议利用单元本身的ActiveAppearance和ActiveAppearanceEnabled属性,但是,我坚持使用早期版本的Infragistics,其中没有实现这些属性。

最后,我不得不使用IUIElementDrawFilter类为单元实现自定义绘制过滤器。实现IUIElementDrawFilter的示例可以在http://help.infragistics.com/Help/NetAdvantage/WinForms/2012.1/CLR2.0/html/Infragistics2.Win.v12.1~Infragistics.Win.IUIElementDrawFilter.html找到。