https://github.com/wieslawsoltes/prodatagrid
ProDataGrid is a high-performance DataGrid control for Avalonia.
https://github.com/wieslawsoltes/prodatagrid
avalonia avaloniaui control datagrid hierachical virtualization
Last synced: 2 months ago
JSON representation
ProDataGrid is a high-performance DataGrid control for Avalonia.
- Host: GitHub
- URL: https://github.com/wieslawsoltes/prodatagrid
- Owner: wieslawsoltes
- License: mit
- Created: 2025-07-15T14:16:11.000Z (11 months ago)
- Default Branch: master
- Last Pushed: 2026-01-26T19:39:09.000Z (4 months ago)
- Last Synced: 2026-01-27T01:46:02.900Z (4 months ago)
- Topics: avalonia, avaloniaui, control, datagrid, hierachical, virtualization
- Language: C#
- Homepage: https://wieslawsoltes.github.io/ProDataGrid/
- Size: 11 MB
- Stars: 143
- Watchers: 6
- Forks: 11
- Open Issues: 1
-
Metadata Files:
- Readme: readme.md
- Funding: .github/FUNDING.yml
Awesome Lists containing this project
README
# ProDataGrid
[](https://github.com/wieslawsoltes/Avalonia.Controls.DataGrid/actions/workflows/build.yml)
[](https://github.com/wieslawsoltes/Avalonia.Controls.DataGrid/actions/workflows/release.yml)
[](https://github.com/wieslawsoltes/Avalonia.Controls.DataGrid/releases)
| Badge | Package | Downloads |
| --- | --- | --- |
| [](https://www.nuget.org/packages/ProDataGrid/) | [ProDataGrid](https://www.nuget.org/packages/ProDataGrid/) | [](https://www.nuget.org/packages/ProDataGrid/) |
| [](https://www.nuget.org/packages/ProDataGrid.Charting/) | [ProDataGrid.Charting](https://www.nuget.org/packages/ProDataGrid.Charting/) | [](https://www.nuget.org/packages/ProDataGrid.Charting/) |
| [](https://www.nuget.org/packages/ProDataGrid.FormulaEngine/) | [ProDataGrid.FormulaEngine](https://www.nuget.org/packages/ProDataGrid.FormulaEngine/) | [](https://www.nuget.org/packages/ProDataGrid.FormulaEngine/) |
| [](https://www.nuget.org/packages/ProDataGrid.FormulaEngine.Excel/) | [ProDataGrid.FormulaEngine.Excel](https://www.nuget.org/packages/ProDataGrid.FormulaEngine.Excel/) | [](https://www.nuget.org/packages/ProDataGrid.FormulaEngine.Excel/) |
| [](https://www.nuget.org/packages/ProCharts/) | [ProCharts](https://www.nuget.org/packages/ProCharts/) | [](https://www.nuget.org/packages/ProCharts/) |
| [](https://www.nuget.org/packages/ProCharts.Avalonia/) | [ProCharts.Avalonia](https://www.nuget.org/packages/ProCharts.Avalonia/) | [](https://www.nuget.org/packages/ProCharts.Avalonia/) |
| [](https://www.nuget.org/packages/ProCharts.Skia/) | [ProCharts.Skia](https://www.nuget.org/packages/ProCharts.Skia/) | [](https://www.nuget.org/packages/ProCharts.Skia/) |
| [](https://www.nuget.org/packages/ProDiagnostics/) | [ProDiagnostics](https://www.nuget.org/packages/ProDiagnostics/) | [](https://www.nuget.org/packages/ProDiagnostics/) |
| [](https://www.nuget.org/packages/ProDiagnostics.Transport/) | [ProDiagnostics.Transport](https://www.nuget.org/packages/ProDiagnostics.Transport/) | [](https://www.nuget.org/packages/ProDiagnostics.Transport/) |
| [](https://www.nuget.org/packages/ProDiagnostics.Viewer/) | [ProDiagnostics.Viewer](https://www.nuget.org/packages/ProDiagnostics.Viewer/) | [](https://www.nuget.org/packages/ProDiagnostics.Viewer/) |
ProDataGrid is a high-performance DataGrid control for Avalonia.
## Quick Start
Install the package:
```sh
dotnet add package ProDataGrid
```
Include the theme in `App.axaml`:
```xml
```
```xml
```
Basic XAML usage:
```xml
```
### 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:
```sh
dotnet add package ProCharts.Avalonia
dotnet add package ProDataGrid.Charting
```
```csharp
using ProCharts;
var chartModel = new ChartModel
{
Title = "Revenue by Quarter",
Series = new List
{
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:
```sh
dotnet add package ProDataGrid.FormulaEngine
dotnet add package ProDataGrid.FormulaEngine.Excel
```
```csharp
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:
```sh
dotnet add package ProDiagnostics
```
```csharp
public override void OnFrameworkInitializationCompleted()
{
if (ApplicationLifetime is IClassicDesktopStyleApplicationLifetime desktop)
desktop.MainWindow = new MainWindow();
base.OnFrameworkInitializationCompleted();
this.AttachDevTools();
}
```
Optional streaming + viewer:
```sh
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`):
```sh
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:
```sh
dotnet add package ProDataGrid --source github --prerelease
```
Or pin a specific nightly version:
```sh
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:
```sh
dotnet test
```
Leak tests use Avalonia-style WeakReference/GC checks. Use the helper script to run only leak tests:
```powershell
.\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:
```sh
dotnet add package ProDiagnostics
```
### Quick start
Attach DevTools after application initialization:
```csharp
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:
```sh
dotnet add package ProDiagnostics.Transport
```
### Quick start
Export diagnostics to the viewer:
```csharp
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:
```sh
dotnet tool install -g prodiagnostics-viewer
```
### Quick start
Run the viewer:
```sh
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`.