我有一个PivotDataGrid工作正常。还添加了一个CustomUnboundFieldData,但现在我想根据此字段中的值更改单元格的backgroundcolor。
要更改颜色,请使用customCellAppearance事件。在我操作未绑定字段数据中的值后,才会触发此事件。
所以我的问题基本上是,如何改变细胞的背景。使用未绑定的字段数据事件?
在代码片段下方
//create unbound field
PivotGridField unboundField = pivot.Control.Fields.Add("unboundDataField", FieldArea.FilterArea);
unboundField.UnboundType = FieldUnboundColumnType.String;
//fill unbound field with data
private void Control_CustomUnboundFieldData(object sender, PivotCustomFieldDataEventArgs e)
{
String myValue = Convert.ToString(e.GetListSourceColumnValue("sourceColumn"));
e.Value = myValue.Substring(6);
e.Field.SummaryType = FieldSummaryType.Max;
}
//code to change appearance of different cells
private void Control_CustomCellAppearance(object sender, PivotCustomCellAppearanceEventArgs e)
{
if(e.Value != null)
{
e.Background = System.Windows.Media.Brushes.Green;
}
}
答案 0 :(得分:0)
要根据“原始数据”更改颜色,请使用CreateDrillDownDataSource方法。
使用此方法,您可以获取源列,并根据方法中的值更改单元格的背景颜色。
在代码段下方:
private void Control_CustomCellAppearance(object sender, PivotCustomCellAppearanceEventArgs e)
{
PivotDrillDownDataSource ds = e.CreateDrillDownDataSource();
//get value from the original source according to the row index
String myValue = Convert.ToString(ds.GetValue(e.RowIndex, "sourceColumn"));
//backgroundcolor condition
if(myValue.Containts("something"))
{
e.Background = System.Windows.Media.Brushes.Green;
}
}
有关详细信息,请参阅devexpress网站:http://documentation.devexpress.com/#WindowsForms/DevExpressXtraPivotGridPivotCellBaseEventArgs_CreateDrillDownDataSourcetopic