De Avalonia Pivot Grid die op Avalonia 12 draait

sgcPivotGrid geeft je Avalonia-toepassing een echte draaitabel: een pivot grid, een veldenlijst met slepen en neerzetten en draaigrafieken, als native Avalonia 12-besturingselementen op Windows, Linux en macOS. Bind het in XAML aan je view model, laat gebruikers velden slepen tussen rijen, kolommen, filters en waarden, en exporteer het resultaat naar Excel. Er zit geen WPF-runtime onder en je hoeft geen OLAP-server te installeren.

Een draaitabel gemaakt voor Avalonia

Pivot grids voor .NET-desktopapps komen meestal uit WinForms- en WPF-suites. Op Avalonia is de keuze klein.

Native, niet geëmuleerd

TsgcAvaloniaPivotGrid en TsgcAvaloniaPivotFieldList zitten in het pakket esegece.sgcPivotGrid.Avalonia. Ze zijn gebouwd op de Avalonia-besturingselementbasis van sgcUICore en getekend met SkiaSharp, dus ze draaien overal waar Avalonia 12 op de desktop draait. De ondergrens van het pakket is Avalonia 12.0 en de tests en demo's draaien op 12.1.4.

Een alternatief voor een OLAP-stack

De engine pivoteert de rijen die je al in het geheugen hebt. Hij bewaart elke kolom in een getypeerde kolomopslag, aggregeert in één doorloop over de bronrijen en tekent alleen het zichtbare deel van het resultaat. Totalen komen uit de bronwaarden, nooit uit gemiddelden van gemiddelden.

Alles wat gebruikers van een draaitabel verwachten

Functies die als Registered zijn gemarkeerd, zitten niet in het gratis Community-pakket. Elke andere functie zit in elke editie.

Functie In de Avalonia pivot grid Editie
Veldenlijst met slepen en neerzettenTsgcAvaloniaPivotFieldList met de zones Rijen, Kolommen, Filters en Waarden, DeferUpdate en ApplyChanges, een ledenpopup met zoeken en een menu Groeperen op (Geen, Jaar, Kwartaal, Maand, Week, Dag) bij datumveldenelke editie
AggregatiesSom, Aantal, Gemiddelde, Min, Max, aantal unieke waarden, standaarddeviatie en variantie (pvfSum tot pvfVar), met subtotalen en eindtotalenelke editie
DatumgroeperingDateGrouping met pvdYear, pvdQuarter, pvdMonth, pvdWeek en pvdDay, één niveau per veldelke editie
Filters en sorterenfilters op lid, label en waarde, sorteren op label of op waardeelke editie
Top NTopN en TopNOthers op een veld: houd de bovenste items en tel de rest op onder OverigeRegistered
Waarden weergeven alsShowAs: percentage van de rij, van de kolom of van het eindtotaal, lopend totaal, verschil met en rangRegistered
Berekende velden en itemsCalculatedFields op de engine en CalculatedItems op een veld voor formules over naburige items zoals East+West; de totalen blijven gebaseerd op de bronrijenRegistered
Asynchrone berekeningAsyncCalculation, RecalculateAsync dat een Task<bool> teruggeeft met een CancellationToken, en CancelCalculation, zodat het venster responsief blijftRegistered
Voorwaardelijke opmaak en drill-downFormatRules voor kleurenschalen, OnGetCellStyle, OnGetCellText en OnDrillDown voor de rijen achter een celelke editie
ExportSaveToCSV, SaveToHTML, SaveToJSON, SaveToPNG en SaveToSVGelke editie
Excel-exportSaveToXLSX schrijft een echte werkmap zonder externe bibliotheek: samengevoegde koppen, overzicht, vastgezette kop, getalnotaties en bladen van rechts naar linksRegistered
DraaigrafiekenTsgcPivotChartTable voedt een TsgcChartTableLink van sgcCharts op een TsgcAvaloniaChart, de veldenlijst met Layout = pvlBar zet veldknoppen boven de grafiek, en de grafiekontwerper opent met ShowDesignerAsyncRegistered sgcPivotGrid en sgcCharts
Vraag het de pivotTsgcPivotGridAI zet een vraag in gewone taal om in een pivotindeling via elke TsgcUIAIProvider, met de TsgcAvaloniaAIQueryBar. Alleen de veldencatalogus wordt verstuurd (namen, bijschriften, typen en een paar voorbeeldwaarden), nooit de rijenelke editie; Undo is Registered
Opgeslagen indelingenSaveLayoutToString, LoadLayoutFromString, SaveLayoutToFile en LoadLayoutFromFile; de grafiekinstellingen in de JSON van de pivotindeling zijn byte-compatibel met DelphiRegistered
Afdrukken en PDFPrint, ShowPrintPreview en ExportToPDF, met de koppen op elke pagina; de PDF is een getagd PDF/UA-document waarin de pivot een echte tabel wordtelke editie
Thema'slichte, donkere en hoogcontrastthema's, en de Fluent-preset; onder Fluent geeft Avalonia 12 met FluentTheme de besturingselementen hun achtergronden, randen, teksten en vullingenelke editie
Rechts-naar-links en toegankelijkheidrechts-naar-links-indelingen aangestuurd door de richting die Avalonia al heeft, en UI Automation standaard ingeschakeldelke editie
Talenteksten voor de eindgebruiker uit ingebedde taalpakketten voor 12 talen, omgeschakeld met sgcUILang.SetLanguageelke editie

XLSX-export, berekende items, asynchrone berekening, draaigrafieken en de 12 taalpakketten staan in de sgcUI .NET-geschiedenis voor versie 2026.11.0. Voor de volledige functierondleiding zie de productpagina van sgcPivotGrid.

Een pivot grid in Avalonia-XAML

Beide bestanden zijn gekopieerd uit een voorbeeld-app met Avalonia 12.1.4 op net8.0 met gecompileerde bindings en FluentTheme. Ze is in Release gebouwd tegen de Avalonia-bronnen van sgcPivotGrid met 0 fouten en 0 waarschuwingen. RecalculateAsync en SaveToXLSX vereisen de editie Registered en versie 2026.11.

De view: grid, velden en veldenlijst

Eén sgc-prefix koppelt alle sgcUI-besturingselementen. De velden zijn de inhoud van het grid, ItemsSource bindt de rijen, en de veldenlijst volgt het grid via PivotGrid:

MainWindow.axaml
<Window xmlns="https://github.com/avaloniaui"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:sgc="https://www.esegece.com/sgcui"
        xmlns:vm="using:PivotDemo"
        x:Class="PivotDemo.MainWindow"
        x:DataType="vm:TSalesViewModel"
        Title="Avalonia pivot grid" Width="1100" Height="640">
  <Grid ColumnDefinitions="*,260">
    <sgc:TsgcAvaloniaPivotGrid x:Name="pivot" ItemsSource="{Binding Sales}" AlternateRows="True">
      <sgc:TsgcAvaloniaPivotField FieldName="Region" Area="pvaRow" Caption="Region"/>
      <sgc:TsgcAvaloniaPivotField FieldName="Date" Area="pvaColumn" DateGrouping="pvdYear" Caption="Year"/>
      <sgc:TsgcAvaloniaPivotField FieldName="Date" Area="pvaColumn" DateGrouping="pvdQuarter" Caption="Quarter"/>
      <sgc:TsgcAvaloniaPivotField FieldName="Amount" Area="pvaData" Aggregation="pvfSum"
                                  DisplayFormat="#,##0.00" Caption="Sales"/>
    </sgc:TsgcAvaloniaPivotGrid>
    <sgc:TsgcAvaloniaPivotFieldList Grid.Column="1" Margin="8,0,0,0" PivotGrid="{Binding #pivot}"/>
  </Grid>
</Window>

Het view model en de code-behind

Een ObservableCollection van eenvoudige objecten is genoeg. Elk publiek lid wordt een pivotkolom, en een wijziging in de collectie laadt de pivot na 100 ms opnieuw:

MainWindow.axaml.cs
using System;
using System.Collections.ObjectModel;
using System.Threading;
using System.Threading.Tasks;
using Avalonia.Controls;

namespace PivotDemo
{
    public sealed class TSale
    {
        public string Region { get; set; }
        public DateTime Date { get; set; }
        public double Amount { get; set; }
    }

    public sealed class TSalesViewModel
    {
        public ObservableCollection<TSale> Sales { get; } = new ObservableCollection<TSale>();
    }

    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
            TSalesViewModel oModel = new TSalesViewModel();
            oModel.Sales.Add(new TSale { Region = "North", Date = new DateTime(2026, 2, 3), Amount = 1250 });
            oModel.Sales.Add(new TSale { Region = "South", Date = new DateTime(2026, 5, 18), Amount = 980 });
            DataContext = oModel;
        }

        // Registered edition: recalculate on a worker thread, then save an Excel workbook
        private async Task DoExportAsync(CancellationToken aToken)
        {
            if (await pivot.Pivot.RecalculateAsync(aToken))
                pivot.SaveToXLSX("sales.xlsx", "Sales");
        }
    }
}

De rest van de app is de standaard Avalonia-desktopsjabloon: Avalonia.Desktop en Avalonia.Themes.Fluent, <FluentTheme/> in App.axaml, en het pakket esegece.sgcPivotGrid.Avalonia, of esegece.sgcPivotGrid.Avalonia.Community voor de gratis editie. De Avalonia-snelstart in de help bouwt dezelfde pivot in code met BeginLoad, DefineColumn, AppendRow en EndLoad.

Eén pivot-engine, elke desktop

De Avalonia pivot grid deelt zijn engine, velden en indelingsformaat met de WinForms-, WPF-, VCL- en FireMonkey-versies.

Doel Besturingselement Platformen
Avalonia 12, net8.0, net9.0, net10.0TsgcAvaloniaPivotGrid, TsgcAvaloniaPivotFieldListWindows, Linux en macOS
.NET Framework 4.7.2, .NET 8, 9 en 10TsgcWinFormsPivotGrid, TsgcWpfPivotGridWinForms en WPF op Windows
Delphi 7 tot 13, VCLTsgcVCLPivotGridWin32 en Win64
Delphi XE6 tot 13, FireMonkeyTsgcFMXPivotGridWindows, macOS, iOS en Android
C++ Builder 2007 tot 13VCL- en FMX-pivot gridsgegenereerde .hpp-headers en statische bibliotheken

Gratis om te beginnen, volledige broncode bij aankoop

Prijzen van de sgcUI-prijspagina.

Community

esegece.sgcPivotGrid.Avalonia.Community op NuGet, gratis in commerciële en niet-commerciële projecten voor een persoon of organisatie met een jaarlijkse bruto-omzet onder EUR 1.000.000 en niet meer dan vijf ontwikkelaars. Het bevat het grid, de veldenlijst, aggregaties, datumgroepering, filters, kleurenschalen, de CSV-, HTML-, JSON-, PNG- en SVG-exports, afdrukken en PDF.

sgcPivotGrid .NET

Het losse pakket, €249 per ontwikkelaar met volledige C#-broncode en 1 jaar updates. Het voegt Top N met Overige, waarden weergeven als, berekende velden en items, opgeslagen indelingen, XLSX-export, asynchrone berekening en draaigrafieken toe, voor WinForms, WPF en Avalonia.

sgcUI .NET Enterprise

Elk sgcUI-product voor .NET, sgcPivotGrid inbegrepen, vanaf €699 per ontwikkelaar. De draaigrafieken hebben ook sgcCharts nodig, dat eveneens in Enterprise zit.

Pivot op Avalonia: de routes vergeleken

Gelezen op 2026-10-20, uit de pagina's waarnaar de tabel verwijst.

  Een pivot uit een WPF-suite op Avalonia XPF Avalonia Pro sgcPivotGrid
Pivot gridhet WPF-besturingselement, uitgevoerd door XPF, "a binary-compatible WPF runtime"niet vermeld op de Avalonia Pro-paginanative Avalonia 12-besturingselementen met een veldenlijst
LicentieXPF per toepassing: Internal EUR 9.500, Business EUR 29.500, Enterprise vanaf EUR 124.500EUR 899 per plek per jaar, exclusief btwper ontwikkelaar, vanaf €249, geen vergoeding per toepassing, vrije herdistributie van binaries
Voorwaardende XPF-notities over bibliotheken van derden zeggen dat Win32-API-shims "required for DevExpress controls" zijn en dat "Issues most commonly arise with controls that use GDI or WinForms components" het Avalonia-pakket verwijst naar Avalonia, Avalonia.Skia en SkiaSharp, niet naar WPF of WinForms
Broncode volledige broncode van de premium-besturingselementen in Enterprisevolledige C#-broncode in elke Registered-editie

XPF wil een bestaande WPF-toepassing op macOS en Linux draaien met haar code en besturingselementen grotendeels ongewijzigd, en sgcPivotGrid doet dat niet: je voegt het toe aan een Avalonia-view. Als je een WPF- of WinForms-app verhuist, lees dan WinForms en WPF naar Avalonia. Als je Avalonia Pro gebruikt, lees dan de besturingselementen die Avalonia Pro niet levert; sgcPivotGrid draait naast de Avalonia Pro-besturingselementen.

Probeer het voordat je een regel schrijft

De .NET-demo's van sgcPivotGrid bevatten twee Avalonia-apps die op Windows, Linux en macOS draaien met de .NET SDK 8.0 of nieuwer.

SalesPivotAvalonia

100.000 gegenereerde verkooprijen met een veldenlijst, kolommen voor Jaar, Kwartaal en Maand, sorteren op waarde, een kleurenschaal, export naar CSV, HTML en PNG en de AI-querybalk. dotnet run start hem, en dotnet run -- --test result.txt voert zijn zelftests buiten beeld uit.

PivotChartAvalonia

Een draaigrafiek zoals in Excel: een TsgcAvaloniaPivotGrid, een TsgcPivotChartTable en een TsgcChartTableLink op een TsgcAvaloniaChart, veldknoppen boven de grafiek, de grafiekontwerper en de grafiekinstellingen opgeslagen in de pivotindeling. De draaigrafiek is alleen Registered.

Liever een kant-en-klaar uitvoerbaar bestand? De gecompileerde demo's van elk sgcUI-product hebben niets geïnstalleerd nodig.

Veelgestelde vragen

Ja. TsgcAvaloniaPivotGrid en TsgcAvaloniaPivotFieldList zijn Avalonia-besturingselementen in het pakket esegece.sgcPivotGrid.Avalonia, gebouwd op de Avalonia-besturingselementbasis van sgcUICore en getekend met SkiaSharp. Het pakket richt zich op Avalonia 12 (ondergrens van het pakket 12.0, getest op 12.1.4). Er is geen WPF-laag en geen XPF-runtime.

Windows, Linux en macOS via Avalonia 12, met de doelframeworks net8.0, net9.0 en net10.0. Hetzelfde product heeft ook WinForms- en WPF-pivot grids voor .NET Framework 4.7.2 en .NET 8, 9 en 10, en VCL- en FireMonkey-pivot grids voor Delphi en C++ Builder.

Bind ItemsSource aan elke IEnumerable van het view model, bijvoorbeeld een ObservableCollection, een List of een DataView, en declareer de velden in XAML als TsgcAvaloniaPivotField-elementen met FieldName, Area en Aggregation. Elk lid van de items wordt een pivotkolom. Latere wijzigingen van de collectie laden de pivot eenmaal per venster van 100 ms opnieuw. Een System.Data.DataTable kan ook worden gelezen via TsgcPivotSource_DataSet.

Het Community-pakket esegece.sgcPivotGrid.Avalonia.Community bevat het grid, de veldenlijst met slepen en neerzetten, acht aggregaties, datumgroepering, filters op lid, label en waarde, sorteren, kleurenschalen, export naar CSV, HTML, JSON, PNG en SVG, afdrukken met voorbeeld, PDF-export, toegankelijkheid en AI-indelingen. Top N met Overige, waarden weergeven als, berekende velden en items, opgeslagen indelingen, XLSX-export, asynchrone berekening, draaigrafieken en Undo van een AI-indeling vereisen een Registered-editie.

Ja. De indeling wordt als JSON opgeslagen met SaveLayoutToString of SaveLayoutToFile, en de grafiekinstellingen die in de JSON van de pivotindeling staan zijn byte-compatibel met Delphi. Opgeslagen indelingen zitten in de Registered-editie.

De beste deal: All-AccessElk eSeGeCe-product, inclusief Premium-ondersteuning, vanaf €1,059 per jaar.
Bekijk de All-Access-prijzen

Voeg een draaitabel toe aan je Avalonia-app

Begin met het gratis Community-pakket van NuGet, of neem de Registered-editie voor alle functies en volledige C#-broncode, en draai de SalesPivotAvalonia-demo naast je app.