Skip to main content

DevExpress v24.1 Update — Your Feedback Matters

Our What's New in v24.1 webpage includes product-specific surveys. Your response to our survey questions will help us measure product satisfaction for features released in this major update and help us refine our plans for our next major release.

Take the survey Not interested

GroupInfo Class

Represents an object, which contains information about a group.

Namespace: DevExpress.Xpf.Printing

Assembly: DevExpress.Xpf.Printing.v24.1.dll

NuGet Package: DevExpress.Wpf.Printing

#Declaration

public class GroupInfo

#Remarks

Objects of the GroupInfo class are stored in the GroupInfoCollection, which is returned by the CollectionViewLink.GroupInfos property of the CollectionViewLink instance.

#Example

The following example demonstrates how to use the CollectionViewLink class to print data from a hierarchical datasource, which implements the ICollectionView interface.

For this, it is necessary to do the following:

View Example

using System;
using System.ComponentModel;
using System.Globalization;
using System.Windows;
using System.Windows.Data;
using DevExpress.Xpf.Printing;
// ...
private void button1_Click(object sender, RoutedEventArgs e) {
    // Create a link and bind it to the PrintPreview instance.
    CollectionViewLink link = new CollectionViewLink();
    //preview.Model = new LinkPreviewModel(link);

    // Create an ICollectionView object.
    link.CollectionView = CreateMonthCollectionView();

    // Provide export templates.
    link.DetailTemplate = (DataTemplate)Resources["monthNameTemplate"];
    link.GroupInfos.Add(new GroupInfo((DataTemplate)Resources["monthQuarterTemplate"]));

    // Create a document.
    link.CreateDocument(true);

    // Show a Print Preview.
    PrintHelper.ShowPrintPreviewDialog(this, link);
}


private ICollectionView CreateMonthCollectionView() {
    const int monthCount = 12;
    string[] monthNames = CultureInfo.CurrentCulture.DateTimeFormat.MonthNames;

    MonthItem[] data = new MonthItem[Math.Min(monthNames.Length, monthCount)];
    for (int i = 0; i < data.Length; i++) {
        data[i] = new MonthItem(monthNames[i], (i / 3) + 1);
    }

    CollectionViewSource source = new CollectionViewSource();
    source.Source = data;
    source.GroupDescriptions.Add(new PropertyGroupDescription("Quarter"));

    return source.View;
}

public class MonthItem {
    public string Name { get; private set; }
    public int Quarter { get; private set; }

    public MonthItem(string name, int quarter) {
        Name = name;
        Quarter = quarter;
    }
}

#Inheritance

Object
GroupInfo
See Also