Back to Devexpress

BandFactory Class

xtrareports-devexpress-dot-xtrareports-dot-ui-1761d464.md

latest3.1 KB
Original Source

BandFactory Class

Enables you to customize the process of creating report bands in the End-User Report Designer.

Namespace : DevExpress.XtraReports.UI

Assembly : DevExpress.XtraReports.v25.2.dll

NuGet Package : DevExpress.Reporting.Core

Declaration

csharp
public class BandFactory
vb
Public Class BandFactory

Remarks

The following example illustrates how to use the BandFactory class for overriding the default behavior for adding new Page Headers to a report.

csharp
using DevExpress.XtraReports.UI;
// ...

public class MyCustomPageHeaderBand : PageHeaderBand {
    public string MyCustomBandProperty { get; set; }
}

public class MyCustomBandFactory : BandFactory {
    public override Band CreateInstance(BandKind bandKind) {
        if (bandKind == BandKind.PageHeader)
            return new MyCustomPageHeaderBand();
        return base.CreateInstance(bandKind);
    }
}
vb
Imports DevExpress.XtraReports.UI
' ...

Public Class MyCustomPageHeaderBand
    Inherits PageHeaderBand
    Public Property MyCustomBandProperty() As String
        Get
            Return m_MyCustomBandProperty
        End Get
        Set
            m_MyCustomBandProperty = Value
        End Set
    End Property
    Private m_MyCustomBandProperty As String
End Class

Public Class MyCustomBandFactory
    Inherits BandFactory
    Public Overrides Function CreateInstance(MyBandKind As BandKind) As Band
        If MyBandKind = BandKind.PageHeader Then
            Return New MyCustomPageHeaderBand()
        End If
        Return MyBase.CreateInstance(MyBandKind)
    End Function
End Class

To register a custom band factory, assign it to the protected static bandFactory property of the XtraReportBase class.

csharp
using DevExpress.XtraReports.UI;
// ...

public class XtraReport1 : XtraReport {
    public XtraReport1() {
        InitializeComponent();
        bandFactory = new MyCustomBandFactory();
    }
}
vb
Imports DevExpress.XtraReports.UI
' ...

Public Class XtraReport1
    Inherits XtraReport

    Public Sub New()
        InitializeComponent()
        bandFactory = New MyCustomBandFactory()
    End Sub
End Class

Inheritance

Object BandFactory

See Also

BandFactory Members

XtraReportBase

DevExpress.XtraReports.UI Namespace