C#更改自定义字段数据事件的背景颜色

时间:2011-12-28 15:00:35

标签: c# wpf devexpress

我有一个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; 
    }

}      

1 个答案:

答案 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