Skip to content

wieslawsoltes/ProDataGrid

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1,577 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ProDataGrid

Build

Release GitHub Release

Badge Package Downloads
NuGet ProDataGrid Downloads
NuGet ProDataGrid.Charting Downloads
NuGet ProDataGrid.FormulaEngine Downloads
NuGet ProDataGrid.FormulaEngine.Excel Downloads
NuGet ProCharts Downloads
NuGet ProCharts.Avalonia Downloads
NuGet ProCharts.Skia Downloads
NuGet ProDiagnostics Downloads
NuGet ProDiagnostics.Transport Downloads
NuGet ProDiagnostics.Viewer Downloads

ProDataGrid is a high-performance DataGrid control for Avalonia.

Quick Start

Install the package:

dotnet add package ProDataGrid

Include the theme in App.axaml:

<Application.Styles>
  <FluentTheme />
  <StyleInclude Source="avares://Avalonia.Controls.DataGrid/Themes/Fluent.v2.xaml" />
</Application.Styles>
<Application.Styles>
  <SimpleTheme />
  <StyleInclude Source="avares://Avalonia.Controls.DataGrid/Themes/Simple.v2.xaml" />
</Application.Styles>

Basic XAML usage:

<DataGrid ItemsSource="{Binding People}"
          AutoGenerateColumns="False"
          UseLogicalScrollable="True">
  <DataGrid.Columns>
    <DataGridTextColumn Header="ID" Binding="{Binding Id}" Width="60" />
    <DataGridTextColumn Header="Name" Binding="{Binding Name}" Width="*" />
    <DataGridCheckBoxColumn Header="Active" Binding="{Binding IsActive}" Width="80" />
  </DataGrid.Columns>
</DataGrid>

More than DataGrid

ProDataGrid ships as a family of packages beyond the grid itself. Quick starts below cover the most common add-ons.

Charting

ProCharts is an Excel-quality charting library built for ProDataGrid. ProDataGrid.Charting bridges grid data and pivots into chart series.

Quick start:

dotnet add package ProCharts.Avalonia
dotnet add package ProDataGrid.Charting
using ProCharts;

var chartModel = new ChartModel
{
    Title = "Revenue by Quarter",
    Series = new List<ChartSeries>
    {
        ChartSeries.Line("Q1", new[] { 120d, 140d, 110d, 180d }),
        ChartSeries.Line("Q2", new[] { 160d, 130d, 150d, 210d })
    },
    XAxis = new ChartAxis { Title = "Quarter", Kind = ChartAxisKind.Category },
    YAxis = new ChartAxis { Title = "Revenue", Kind = ChartAxisKind.Value }
};

Bind chartModel to ProChartView.ChartModel in your Avalonia view.

Formula Engine

The formula engine provides Excel-compatible parsing, evaluation, and recalculation. Use it in DataGrid formula columns or wire it to your own data model.

Quick start:

dotnet add package ProDataGrid.FormulaEngine
dotnet add package ProDataGrid.FormulaEngine.Excel
var definition = new DataGridFormulaColumnDefinition
{
    Header = "Total",
    Formula = "=[Price] * [Quantity]",
    AllowCellFormulas = true
};

ProDiagnostics

ProDiagnostics provides Avalonia developer tools UI for runtime inspection and debugging, with optional out-of-process transport and a viewer app.

Quick start:

dotnet add package ProDiagnostics
public override void OnFrameworkInitializationCompleted()
{
    if (ApplicationLifetime is IClassicDesktopStyleApplicationLifetime desktop)
        desktop.MainWindow = new MainWindow();

    base.OnFrameworkInitializationCompleted();
    this.AttachDevTools();
}

Optional streaming + viewer:

dotnet add package ProDiagnostics.Transport
dotnet tool install -g prodiagnostics-viewer

Nightly Packages (GitHub Packages)

Nightly builds are published to GitHub Packages with versions like 11.3.9-nightly.20241227.123.

Add the GitHub Packages feed (requires a GitHub token with read:packages):

dotnet nuget add source https://nuget.pkg.github.com/wieslawsoltes/index.json \
  --name github \
  --username YOUR_GITHUB_USERNAME \
  --password YOUR_GITHUB_TOKEN \
  --store-password-in-clear-text

GitHub Packages NuGet docs: https://docs.github.com/en/packages/working-with-a-github-packages-registry/working-with-the-nuget-registry

Install a nightly package:

dotnet add package ProDataGrid --source github --prerelease

Or pin a specific nightly version:

dotnet add package ProDataGrid --source github --version 11.3.9-nightly.20241227.123

Documentation

  • DocFX articles: docfx/articles/intro.md
  • DocFX entry page: docfx/index.md

Testing

Run standard tests:

dotnet test

Leak tests use Avalonia-style WeakReference/GC checks. Use the helper script to run only leak tests:

.\tools\run-leak-tests.ps1

ProDiagnostics

ProDiagnostics provides Avalonia developer tools UI as a standalone package. It focuses on runtime inspection and debugging:

  • Visual and logical tree inspection.
  • Property and style inspection with live values.
  • Routed event tracking.
  • Layout exploration and renderer diagnostics overlays.

Installation

Install from NuGet:

dotnet add package ProDiagnostics

Quick start

Attach DevTools after application initialization:

public override void OnFrameworkInitializationCompleted()
{
    if (ApplicationLifetime is IClassicDesktopStyleApplicationLifetime desktop)
        desktop.MainWindow = new MainWindow();

    base.OnFrameworkInitializationCompleted();
    this.AttachDevTools();
}

By default DevTools opens with F12. You can also attach to a TopLevel or provide a custom key gesture or options.

ProDiagnostics.Transport

ProDiagnostics.Transport streams metrics and activities over UDP so you can observe diagnostics out-of-process.

Installation

Install from NuGet:

dotnet add package ProDiagnostics.Transport

Quick start

Export diagnostics to the viewer:

using ProDiagnostics.Transport;

var exporter = new DiagnosticsUdpExporter(new DiagnosticsUdpOptions
{
    Host = "127.0.0.1",
    Port = TelemetryProtocol.DefaultPort,
    ActivitySourceNames = new[] { "ProDataGrid.*" },
    MeterNames = new[] { "ProDataGrid.Diagnostic.Meter" }
});

exporter.Start();

Keep the exporter alive for the lifetime of the app and dispose it during shutdown.

ProDiagnostics.Viewer

ProDiagnostics.Viewer is an Avalonia UI for live metrics and activities streamed over UDP.

Installation

Install as a global tool:

dotnet tool install -g prodiagnostics-viewer

Quick start

Run the viewer:

prodiagnostics-viewer

License

ProDataGrid is licensed under the MIT License (see licence.md).

ProDiagnostics is licensed under the MIT License (see licence.md).

The original Avalonia.Controls.DataGrid and Avalonia.Diagnostics license is preserved in licence-avalonia.md.

About

ProDataGrid is a high-performance DataGrid control for Avalonia.

Topics

Resources

License

MIT, MIT licenses found

Licenses found

MIT
licence.md
MIT
licence-avalonia.md

Stars

Watchers

Forks

Sponsor this project

 

Packages

 
 
 

Contributors

Languages