/// <summary> /// Called when the group summary property is changed. /// </summary> /// <param name="dependencyObject">The dependency object.</param> /// <param name="e">The <see cref="DependencyPropertyChangedEventArgs"/> instance containing the event data.</param> private static void OnGroupSummaryPropertyChanged(DependencyObject dependencyObject, DependencyPropertyChangedEventArgs e) { DataGrid dataGrid = (DataGrid)dependencyObject; DataGridGroupSummaryCollection groupSummary = GetGroupSummary(dataGrid); DataGridGroupSummaryCollection groupSummaryInternal = new DataGridGroupSummaryCollection(); foreach (DataGridColumn dataGridColumn in dataGrid.Columns) { DataGridGroupSummary item = groupSummary.FirstOrDefault(x => x.Column == dataGridColumn); if (item == null) { groupSummaryInternal.Add( new DataGridGroupSummary() { Column = dataGridColumn, Template = new DataTemplate() }); } else { groupSummaryInternal.Add( new DataGridGroupSummary() { Column = dataGridColumn, Template = item.Template }); } } SetGroupSummaryInternal(dataGrid, groupSummaryInternal); }
/// <summary> /// Sets the internal group summary representing all columns. /// </summary> /// <param name="dataGrid">The data grid.</param> /// <param name="value">The value.</param> private static void SetGroupSummaryInternal(DataGrid dataGrid, DataGridGroupSummaryCollection value) { dataGrid.SetValue(GroupSummaryInternalPropertyKey, value); }
/// <summary> /// Sets the group summary items. /// </summary> /// <param name="dataGrid">The data grid.</param> /// <param name="value">The value.</param> public static void SetGroupSummary(DataGrid dataGrid, DataGridGroupSummaryCollection value) { dataGrid.SetValue(GroupSummaryProperty, value); }