MiniDashboard.Avalonia.TreeDataGrid 2.3.8.99

dotnet add package MiniDashboard.Avalonia.TreeDataGrid --version 2.3.8.99
                    
NuGet\Install-Package MiniDashboard.Avalonia.TreeDataGrid -Version 2.3.8.99
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="MiniDashboard.Avalonia.TreeDataGrid" Version="2.3.8.99" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="MiniDashboard.Avalonia.TreeDataGrid" Version="2.3.8.99" />
                    
Directory.Packages.props
<PackageReference Include="MiniDashboard.Avalonia.TreeDataGrid" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add MiniDashboard.Avalonia.TreeDataGrid --version 2.3.8.99
                    
#r "nuget: MiniDashboard.Avalonia.TreeDataGrid, 2.3.8.99"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package MiniDashboard.Avalonia.TreeDataGrid@2.3.8.99
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=MiniDashboard.Avalonia.TreeDataGrid&version=2.3.8.99
                    
Install as a Cake Addin
#tool nuget:?package=MiniDashboard.Avalonia.TreeDataGrid&version=2.3.8.99
                    
Install as a Cake Tool

MiniDashboard.Avalonia

Dashboard controls for Avalonia 12 / .NET 10 applications. Choose free tile placement in a fixed grid with DashboardPanel (or the MVVM-friendly DashboardItemsPanel), or a dynamically editable matrix with DashboardMatrix: one tile per cell, with insertable/removable rows and columns and proportional splitters. Both layouts share tiles, catalogs, content pickers, and target selection.

Packages

  • MiniDashboard.Avalonia: dashboard hosts, content catalogs, pickers, and tile controls.
  • MiniDashboard.Avalonia.ScottPlot: optional scatter, signal, histogram, bar, financial, and pie chart tiles.
  • MiniDashboard.Avalonia.TreeDataGrid: optional TreeDataGrid/CSV tiles; the underlying Avalonia package may require an Avalonia UI license.
  • MiniDashboard.Avalonia.TreeDataGridOS: the corresponding tiles using the MIT-licensed community fork; do not reference both grid packages.

Quick start

dotnet add package MiniDashboard.Avalonia

Register the core styles after your application theme in App.axaml:

<Application xmlns="https://github.com/avaloniaui"
             xmlns:dashboard="clr-namespace:MiniDashboard.Avalonia.Themes;assembly=MiniDashboard.Avalonia">
    <Application.Styles>
        <FluentTheme />
        <dashboard:MiniDashboardStyles />
    </Application.Styles>
</Application>

Optional packages add their own style collections: ScottPlotStyles in .ScottPlot.Themes, or TreeDataGridStyles in .TreeDataGrid.Themes / .TreeDataGridOS.Themes.

Namespaces: .Grid contains tile-grid hosts and placement APIs; .Matrix contains the matrix host/layout/events; .Tiles contains shared tile controls; .Content contains catalogs/factories/ content pickers; .Picking contains the target-picker contract. These are under MiniDashboard.Avalonia. When upgrading from the root-namespace API, update both C# imports and XAML declarations.

Basic usage

<grid:DashboardPanel xmlns="https://github.com/avaloniaui"
                     xmlns:grid="clr-namespace:MiniDashboard.Avalonia.Grid;assembly=MiniDashboard.Avalonia"
                     xmlns:tiles="clr-namespace:MiniDashboard.Avalonia.Tiles;assembly=MiniDashboard.Avalonia"
                     Rows="6" Columns="8">
    <tiles:TextTile GridX="0" GridY="0" GridW="2" GridH="2" TileHeader="Notes" Text="Drag me" />
    <tiles:Tile GridX="2" GridY="0" GridW="3" GridH="2" TileHeader="Status">
        <TextBlock Text="Healthy" />
    </tiles:Tile>
</grid:DashboardPanel>

Drag headers and resize from the bottom-right grip. GridX/Y locate a tile; GridW/H define spans. Collision handling finds nearby/free positions or adjusts resizing. Bind coordinates to persist your layout; PlacementChanging can veto edits and PlacementChanged reports accepted edits.

For view-model-driven dashboards, use DashboardItemsPanel.ItemsSource with ItemTemplate or DataTemplates. Generated tiles bind Title, X, Y, Width, and Height by convention. Opt into DisposeRemovedTiles for owned template-created controls; direct control items are borrowed.

Matrix dashboards

<matrix:DashboardMatrix xmlns="https://github.com/avaloniaui"
                        xmlns:matrix="clr-namespace:MiniDashboard.Avalonia.Matrix;assembly=MiniDashboard.Avalonia"
                        MinCellWidth="96" MinCellHeight="72" DisposeRemovedContent="True" />
using Avalonia.Controls;
using MiniDashboard.Avalonia.Content;

Matrix.ContentDefinitions = new DashboardContentCatalog
{
    new DashboardContentDefinition
    {
        Id = "notes", Title = "Notes", Category = "General",
        Factory = () => new TextBox { AcceptsReturn = true }
    }
};
Matrix.SetContent(Matrix.Layout.Cells[0].Id, "notes");
Matrix.InsertColumnAfter(0); // Insert a whole column; preserve existing content.
Matrix.InsertRowAfter(0);

Matrices start at 1×1. Resize shared boundaries with pointer or keyboard; cells do not span or resize independently. Headerless mode provides boundary menus. LayoutChanging/ContentChanging can veto transactions. Save GetSnapshot() as JSON and apply it with RestoreLayout; snapshots contain geometry/assignments, not controls or application content state. Move/swap preserves instances.

Shared content

DashboardContentCatalog supplies fresh-control recipes with stable, case-sensitive IDs. Use it in a matrix or tile-grid DashboardContentTile. Define exactly one Factory / ContextFactory for a body, or TileFactory / ContextTileFactory for a complete tile. FromItems, FromTemplate, FromTiles, and CreateTile adapt existing models. Contextual factories receive instance/cell IDs and optional state from ContentStateProvider. Save that application state separately.

Reuse unchanged definitions to retain views; call RefreshContent() for metadata/plain-catalog edits. Visual detachment preserves content. Permanently retire generated-content hosts with Dispose(); opt into DisposeRemovedContent to dispose owned discarded factory content.

Pickers and selectors

Content selection chooses what to create. The default is a compact menu. Attach a grouped searchable chooser with DashboardContentPicker.SetPicker(dashboard, new DashboardContentPicker { GroupByCategory = true }) from .Content. + Add content opens it directly below the button; search matches title/category/description. Implement IDashboardContentPicker for your own UI: return a definition ID or null; the host handles assignment and factory lifecycle.

Target selection chooses an existing tile for a command. Both layout families implement .Picking.IDashboardTilePicker: call PickTileAsync(predicate, cancellationToken), or matrix PickCellAsync for cell identity. Overlays intercept hosted input; clicks/Enter select, arrows/Tab move focus, and Escape cancels. CancelTilePick / CancelCellPick support Cancel buttons. Cancellation or relevant layout/content changes return null. The application supplies instructions and executes its command; no persistent active tile is introduced.

Extensions

After registering extension styles, chart and grid tiles work like other complete tiles. Chart controls use .ScottPlot.Cartesian / .ScottPlot.Pie; grid controls use .TreeDataGrid or .TreeDataGridOS, with matching assembly names. CsvGridTile has a minimal parser without quoting/escaping support. Core TableViewTile provides read-only native Avalonia tables.

Custom tiles derive from .Tiles.Tile. Templates should honor IsHeaderPresented, IsResizeGripVisible, EffectiveHeaderActions, and AddContentActions; keep PART_Add for direct custom-picker opening. Theme resources control spacing, headers, target overlays, and light/dark colors.

See the full user guide for detailed examples, custom pickers, persistence, ownership, theming, and extension setup.

Product Compatible and additional computed target framework versions.
.NET net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
2.3.8.99 5 10/7/2026
2.3.5.99 53 10/7/2026
2.2.0.98 56 10/7/2026
1.0.0.17 360 9/17/2025