Install and first grid
One package for your host, a list of columns, a source over your data — and a grid in a window.
The showcase app has every Core and Pro scene in one window — the million-row table, cards, tree, pivot, charts and the 3D views. No SDK needed: download the demo (Windows x64, ZIP), unpack it and start ArionUI.Demo.exe.
What you need
- .NET 10 SDK. The engine targets
net10.0; the WPF host targetsnet10.0-windows. - A desktop OS. Avalonia itself runs on Windows, macOS and Linux; ArionUI is developed and tested on Windows so far. The WPF and WinForms hosts are Windows only.
- A GPU, ideally. Not a requirement — where none is available the engine falls back to a CPU path on its own and logs that it did.
Add the package
dotnet add package ArionUI.Rendering.Avalonia --prerelease # Avalonia host
dotnet add package ArionUI.Rendering.Wpf --prerelease # or: WPF hostThe host package brings the engine along: ArionUI.Core, ArionUI.Presentation, ArionUI.Grid, ArionUI.Gpu and ArionUI.Rendering.Skia. All of it is open source under Apache-2.0. --prerelease is needed because every version is still a preview.
Your first grid
Three things make a grid: a record type, a list of column definitions, and a source over your data. The control takes the result.
using ArionUI.Core; // ListItemsSource
using ArionUI.Presentation; // GridView, Column, TypedColumn
using ArionUI.Rendering.Avalonia; // ArionGrid
public sealed record Order(int Id, string Customer, string Region, double Amount);
var view = new GridView<Order>(
[
TypedColumn.Number<Order>("Id", o => o.Id, format: "0").WithKey("id").WithWidth(80),
Column.Text<Order>("Customer", o => o.Customer).WithKey("customer").WithWidth(180),
Column.Text<Order>("Region", o => o.Region).WithKey("region").WithWidth(110),
TypedColumn.Number<Order>("Amount", o => o.Amount, format: "#,##0.00").WithKey("amount").WithWidth(120),
],
new ListItemsSource<Order>(orders),
rowHeight: 24)
.AsDataGrid();
window.Content = new ArionGrid(view);AsDataGrid() switches on what a data grid is expected to do: sorting on header click, filtering, editing, selection and keyboard navigation. Number columns sort on the value, not on the formatted string, so 9 does not land after 10.
A complete application — window, theme, a million generated rows — is the sample in the repository: samples/ArionUI.Sample.Avalonia.
The same thing in WPF
One namespace differs. Nothing above the host does.
using ArionUI.Rendering.Wpf; // instead of ArionUI.Rendering.Avalonia
Content = new ArionGrid(view); // the same `view` as aboveBoth hosts draw through the same Skia renderer, so the two windows show the same frame. Everything an application needs sits on one facade, grid.Api: state, selection, editing, commands, events, panes and layout — the same on every host.
WinForms, from source
The WinForms host builds and runs but is not a package yet. Clone the repository and reference the project:
git clone https://github.com/ArionUI/ArionUI
dotnet add reference ArionUI/src/ArionUI.Rendering.WinForms/ArionUI.Rendering.WinForms.csprojIt targets net10.0-windows10.0.19041, so your project needs that target framework or a later one. The control is called ArionGridControl; the view is the same.
var view = new GridView<OrderRecord>(
[
Column.Text<OrderRecord>("Customer", o => o.Customer).WithKey("customer").WithWidth(180),
TypedColumn.Number<OrderRecord>("Amount", o => o.Amount, format: "#,##0.00").WithKey("amount"),
],
new ListItemsSource<OrderRecord>(orders))
.AsDataGrid();
Controls.Add(new ArionGridControl(view)
{
Dock = DockStyle.Fill,
VisualTheme = ArionTheme.Light(),
});Adding a Pro module
Grouping, pivot, charts, timeline, planning, conditional formatting, layout persistence and export are separate packages. They are free during the preview, also in commercial software, and need no licence key.
dotnet add package ArionUI.Grouping --prereleaseusing ArionUI.Grouping;
view.EnableGrouping(); // group by any column from its headerA module announces itself with one call and is then simply there; without the call the grid shows no half-working controls for it. Each module has its own page under Pro modules.
Building from source
git clone https://github.com/ArionUI/ArionUI
cd ArionUI
dotnet build ArionUI.slnx
dotnet run --project samples/ArionUI.Sample.AvaloniaWhere to go next
Columns carry most of the behaviour, so that is the next page: Columns. After that, Data sources covers live and server-side data, and The grid API what an application does with a grid at run time. If you would rather see the same records as cards or a tree first, that is Views. The built-in texts are German until you switch them: Localisation.
