Sortable.Avalonia 1.0.0

dotnet add package Sortable.Avalonia --version 1.0.0
                    
NuGet\Install-Package Sortable.Avalonia -Version 1.0.0
                    
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="Sortable.Avalonia" Version="1.0.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Sortable.Avalonia" Version="1.0.0" />
                    
Directory.Packages.props
<PackageReference Include="Sortable.Avalonia" />
                    
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 Sortable.Avalonia --version 1.0.0
                    
#r "nuget: Sortable.Avalonia, 1.0.0"
                    
#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 Sortable.Avalonia@1.0.0
                    
#: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=Sortable.Avalonia&version=1.0.0
                    
Install as a Cake Addin
#tool nuget:?package=Sortable.Avalonia&version=1.0.0
                    
Install as a Cake Tool

Sortable.Avalonia

An attached-behavior library that adds drag-and-drop sorting, cross-collection transfers, and animated item movements to any Avalonia ItemsControl — all with full MVVM support and no code-behind.

Key Features

Same-collection sorting – Reorder items within a list
Cross-collection transfers – Move/copy/swap items between lists
Reversible drops – Accept/reject drops in your ViewModel before commit
Transfer modes – Move, Copy, or Swap
Sortable modes – Sort (shift) or Swap (exchange)
Drag handles – Restrict drag start to specific controls
Smooth animations – For both interactive and programmatic changes
Groups – Isolate interactions by group name
Touch + Mouse – Unified pointer input

Quick Example

<ItemsControl xmlns:sortable="clr-namespace:Sortable.Avalonia;assembly=Sortable.Avalonia"
              sortable:Sortable.Sortable="True"
              sortable:Sortable.UpdateCommand="{Binding UpdateCmd}"
              ItemsSource="{Binding Items}">
    <ItemsControl.ItemTemplate>
        <DataTemplate>
            <Border sortable:Sortable.IsSortable="True" Cursor="Hand">
                <TextBlock Text="{Binding Name}" />
            </Border>
        </DataTemplate>
    </ItemsControl.ItemTemplate>
</ItemsControl>
[RelayCommand]
void Update(SortableUpdateEventArgs e)
{
    if (e.ApplyUpdateMutation())
    {
        Console.WriteLine($"Moved from {e.OldIndex} to {e.NewIndex}");
    }
}

Installation

dotnet add package Sortable.Avalonia

Why Use This?

  • Zero code-behind – Pure XAML + ViewModel commands
  • Works with any panelStackPanel, UniformGrid, WrapPanel, etc.
  • Conditional acceptance – Validate business rules before applying mutations
  • Helper extensionsApplyUpdateMutation() and ApplyDropMutation() handle collection changes for you

Common Scenarios

Use Case Description
Kanban board Drag tasks between columns (Triage → Engineering → Release)
Priority queue Reorder items by drag-and-drop
Drag handles Only drag from specific icons, keep buttons clickable
Copy mode Duplicate templates instead of moving them
Swap mode Exchange positions without shifting other items
Cross-collection swap Trade items between two lists in one gesture

Visit the repository for the full documentation

📖 Sortable.Avalonia Repo - Full Documentation & Interactive Demos

The repository includes:

  • Detailed property reference
  • 18 runnable demo scenarios (Kanban, grid layouts, drag handles, etc.)
  • Advanced patterns (conditional acceptance, copy mode, groups)
  • Animation control and customization guide

License

MIT License – See LICENSE for details.


Need help? Open an issue or check out the demo app for working examples.

Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  net6.0 was computed.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  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. 
.NET Core netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
.NET Standard netstandard2.1 is compatible. 
MonoAndroid monoandroid was computed. 
MonoMac monomac was computed. 
MonoTouch monotouch was computed. 
Tizen tizen60 was computed. 
Xamarin.iOS xamarinios was computed. 
Xamarin.Mac xamarinmac was computed. 
Xamarin.TVOS xamarintvos was computed. 
Xamarin.WatchOS xamarinwatchos was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • .NETStandard 2.1

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
1.0.0 69 3/8/2026

First stable release: Drag-and-drop sorting, cross-collection transfers, reversible drops, drag handles, sort/swap modes, animated programmatic updates, mouse and touch support.