Thread ID: |
Created: |
Updated: |
Platform: |
Replies: |
141731 | Dec 31,2018 01:34 PM UTC | Jan 2,2019 04:17 PM UTC | WPF | 1 |
![]() |
Tags: SfDataGrid |
public class CustomCaptionSummaryCellRenderer : GridCaptionSummaryCellRenderer
{
public override void OnInitializeEditElement(DataColumnBase dataColumn, GridCaptionSummaryCell uiElement, object dataContext)
{
base.OnInitializeEditElement(dataColumn, uiElement, dataContext);
if (dataContext is Group)
{
var groupRecord = dataContext as Group;
if (this.DataGrid.CaptionSummaryRow.ShowSummaryInRow)
{
uiElement.Content = SummaryCreator.GetSummaryDisplayTextForRow(groupRecord.SummaryDetails,
this.DataGrid.View);
}
else
{
uiElement.Content = SummaryCreator.GetSummaryDisplayText(groupRecord.SummaryDetails,
dataColumn.GridColumn.MappingName, this.DataGrid.View);
if (dataColumn.GridColumn == this.DataGrid.Columns.FirstOrDefault(col => !col.IsHidden))
{
uiElement.Content = groupRecord.Key.ToString() +" - " + uiElement.Content.ToString();
}
}
}
}
public override void OnUpdateEditBinding(DataColumnBase dataColumn, GridCaptionSummaryCell element, object dataContext)
{
base.OnUpdateEditBinding(dataColumn, element, dataContext);
if (element.DataContext is Group && this.DataGrid.View.GroupDescriptions.Count > 0)
{
var groupRecord = element.DataContext as Group;
//get the column which is grouped.
var groupedColumn = this.GetGroupedColumn(groupRecord);
if (this.DataGrid.CaptionSummaryRow.ShowSummaryInRow)
{
element.Content = SummaryCreator.GetSummaryDisplayTextForRow(groupRecord.SummaryDetails,
this.DataGrid.View, groupedColumn.HeaderText);
}
else
{
element.Content = SummaryCreator.GetSummaryDisplayText(groupRecord.SummaryDetails,
dataColumn.GridColumn.MappingName, this.DataGrid.View);
if (dataColumn.GridColumn == this.DataGrid.Columns.FirstOrDefault(col => !col.IsHidden))
{
element.Content = groupRecord.Key.ToString() +" - "+ element.Content.ToString();
}
}
}
}
// Method to get the Grouped Column.
private GridColumn GetGroupedColumn(Group group)
{
var groupDesc = this.DataGrid.View.GroupDescriptions[group.Level - 1] as PropertyGroupDescription;
foreach (var column in this.DataGrid.Columns)
{
if (column.MappingName == groupDesc.PropertyName)
{
return column;
}
}
return null;
}
} |
This post will be permanently deleted. Are you sure you want to continue?
Sorry, An error occured while processing your request. Please try again later.
This page will automatically be redirected to the sign-in page in 10 seconds.