2012-11-02 68 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找到。