Grouping with WPF GridDataControl | Syncfusion Blogs
Live Chat Icon For mobile
Live Chat Icon
Popular Categories.NET  (173).NET Core  (29).NET MAUI  (199)Angular  (107)ASP.NET  (51)ASP.NET Core  (82)ASP.NET MVC  (89)Azure  (40)Black Friday Deal  (1)Blazor  (211)BoldSign  (13)DocIO  (24)Essential JS 2  (106)Essential Studio  (200)File Formats  (63)Flutter  (132)JavaScript  (219)Microsoft  (118)PDF  (80)Python  (1)React  (98)Streamlit  (1)Succinctly series  (131)Syncfusion  (892)TypeScript  (33)Uno Platform  (3)UWP  (4)Vue  (45)Webinar  (50)Windows Forms  (61)WinUI  (68)WPF  (157)Xamarin  (161)XlsIO  (35)Other CategoriesBarcode  (5)BI  (29)Bold BI  (8)Bold Reports  (2)Build conference  (8)Business intelligence  (55)Button  (4)C#  (146)Chart  (127)Cloud  (15)Company  (443)Dashboard  (8)Data Science  (3)Data Validation  (8)DataGrid  (62)Development  (618)Doc  (8)DockingManager  (1)eBook  (99)Enterprise  (22)Entity Framework  (5)Essential Tools  (14)Excel  (37)Extensions  (22)File Manager  (6)Gantt  (18)Gauge  (12)Git  (5)Grid  (31)HTML  (13)Installer  (2)Knockout  (2)Language  (1)LINQPad  (1)Linux  (2)M-Commerce  (1)Metro Studio  (11)Mobile  (497)Mobile MVC  (9)OLAP server  (1)Open source  (1)Orubase  (12)Partners  (21)PDF viewer  (42)Performance  (12)PHP  (2)PivotGrid  (4)Predictive Analytics  (6)Report Server  (3)Reporting  (10)Reporting / Back Office  (11)Rich Text Editor  (12)Road Map  (12)Scheduler  (52)Security  (3)SfDataGrid  (9)Silverlight  (21)Sneak Peek  (31)Solution Services  (4)Spreadsheet  (11)SQL  (10)Stock Chart  (1)Surface  (4)Tablets  (5)Theme  (12)Tips and Tricks  (112)UI  (379)Uncategorized  (68)Unix  (2)User interface  (68)Visual State Manager  (2)Visual Studio  (31)Visual Studio Code  (17)Web  (582)What's new  (319)Windows 8  (19)Windows App  (2)Windows Phone  (15)Windows Phone 7  (9)WinRT  (26)

Grouping with WPF GridDataControl

With the Vol. 3 release, the much awaited grouping and summaries support for the WPF grid will be out. This support works with the CollectionView grouping mode. The summaries are not a part of CollectionView grouping logic, so we included high-level functions that will calculate the summaries of a group dynamically using LINQ methods. This only has the constraint of using IEnumerable<T> implemented data sources.


Interactive grouping

image

Considering you have the GridDataControl added in the XAML markup, just adding the following code snippet would let you define grouped columns.

 

<syncfusion:GridDataControl.GroupedColumns>
    <syncfusion:GridDataGroupColumn ColumnName="ShipCountry"/>
</syncfusion:GridDataControl.GroupedColumns>

 

Defining Summaries

There are three different types of summaries present in GDC:

  • Table Summary
  • Group Summary
  • Group Caption Summary

All of these have the same syntax to declare. You also have the option of seeing what kind of summary the end-user would prefer.

image

 

XAML code snippet:

Table Summary

<syncfusion:GridDataControl.TableSummaryRows>
    <syncfusion:GridDataSummaryRow ShowSummaryInRow=”True” Title=”Total Freight: {FreightSummary} For {CountSummary} Items” TitleColumnCount=”2″>
        <syncfusion:GridDataSummaryRow.SummaryColumns>
            <syncfusion:GridDataSummaryColumn Name=”FreightSummary” MappingName=”Freight” SummaryType=”Int32Aggregate” Format=”‘{Sum:c}'” />
            <syncfusion:GridDataSummaryColumn Name=”CountSummary” MappingName=”OrderDate” SummaryType=”CountAggregate” Format=”‘{Count:d}'” />
        </syncfusion:GridDataSummaryRow.SummaryColumns>
    </syncfusion:GridDataSummaryRow>
</syncfusion:GridDataControl.TableSummaryRows>

Group Summary

<syncfusion:GridDataControl.SummaryRows>
    <syncfusion:GridDataSummaryRow ShowSummaryInRow=”True” Title=”‘Charges – {FreightSummary} for {OrderCount} Items'”>
        <syncfusion:GridDataSummaryRow.SummaryColumns>
            <syncfusion:GridDataSummaryColumn Name=”FreightSummary”  MappingName=”Freight” SummaryType=”Int32Aggregate” Format=”‘{Sum:c}'” />
            <syncfusion:GridDataSummaryColumn Name=”OrderCount” MappingName=”OrderDate” SummaryType=”CountAggregate” Format=”‘{Count}'” />
        </syncfusion:GridDataSummaryRow.SummaryColumns>
    </syncfusion:GridDataSummaryRow>
</syncfusion:GridDataControl.SummaryRows>

Group Caption Summary

<syncfusion:GridDataControl.CaptionSummaryRow>
    <syncfusion:GridDataSummaryRow ShowSummaryInRow=”False” Title=”‘{Count} Items'” TitleColumnCount=”2″>
        <syncfusion:GridDataSummaryRow.SummaryColumns>
            <syncfusion:GridDataSummaryColumn Name=”FreightSummary”  MappingName=”Freight” SummaryType=”Int32Aggregate” Format=”‘{Sum:##}'” > 
            </syncfusion:GridDataSummaryColumn>
        </syncfusion:GridDataSummaryRow.SummaryColumns>
    </syncfusion:GridDataSummaryRow>
</syncfusion:GridDataControl.CaptionSummaryRow>

You may notice that each GridDataSummaryColumn has a Format property. This property specifies the value of the Summary and replaces it with a string that gets formatted. The below values are present for different summary types,

CountAggregate

  • Count

DoubleAggregate/Int32Aggregate

  • Count
  • Max
  • Min
  • Sum
  • Average

We can also add custom summaries and plug into the grid, but that needs a separate post to explain the workflow.

Tags:

Share this post:

Popular Now

Be the first to get updates

Subscribe RSS feed

Be the first to get updates

Subscribe RSS feed