原創(chuàng)|使用教程|編輯:郝浩|2013-07-24 14:27:26.000|閱讀 305 次
概述:WPF界面控件套包ComponentOne Studio for WPF中的網(wǎng)格控件C1FlexGrid的靈活性非常受人稱道,他擁有一個叫CellFactory的類,堪稱在數(shù)據(jù)表現(xiàn)領域的夢幻工具。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
WPF界面控件套包ComponentOne Studio for WPF中的網(wǎng)格控件C1FlexGrid的靈活性非常受人稱道,他擁有一個叫CellFactory的類,堪稱在數(shù)據(jù)表現(xiàn)領域的夢幻工具。CellFactory類允許在單元格中自定義網(wǎng)格,大大方便了網(wǎng)格的開發(fā),能夠?qū)崿F(xiàn)不少意想不到的功能。今天慧都就通過使用這個類來實現(xiàn)動態(tài)條件格式,來證明其的實用性。
一個很常見的需求:以文本內(nèi)容來決定單元格的格式,需要實現(xiàn)的效果如下:
首先,創(chuàng)建一個繼承與CellFactory類的類。
public class CustomCellFactory : CellFactory { }
然后用CellFactory類來覆蓋CreateCellContent()方法,用條件來設置單元式的邊框元素的背景。
public override void CreateCellContent(C1FlexGrid grid, Border bdr, CellRange rng) { base.CreateCellContent(grid, bdr, rng); //format cells in second column if (rng.Column == 2) { if (grid[rng.Row, rng.Column].ToString() == "Japan") { bdr.Background = new SolidColorBrush(Colors.LimeGreen); } else if (grid[rng.Row, rng.Column].ToString() == "India") { bdr.Background = new SolidColorBrush(Colors.MediumVioletRed); } else if (grid[rng.Row, rng.Column].ToString() == "United States") { bdr.Background = new SolidColorBrush(Colors.Yellow); } else if (grid[rng.Row, rng.Column].ToString() == "United Kingdom") { bdr.Background = new SolidColorBrush(Colors.Gold); } } }
然后動態(tài)條件格式就完成了,下面這個GIF就是其動態(tài)效果:
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請務必注明出處、不得修改原文相關鏈接,如果存在內(nèi)容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉(zhuǎn)載自:慧都控件網(wǎng)