Skip to main content

This package provides the functionality to utilize the features of Syncfusion® Maui Kanban controls.

Total Downloads
37.9K
37,868
Published
Oct 20, 2026
today

Get Started

dotnet add package Syncfusion.Maui.Kanban --version 35.1.41
ProductVersions
.NET
net10.0net10.0-android36.0net10.0-ios26.0net10.0-maccatalyst26.0net10.0-windows10.0.19041net9.0net9.0-android35.0net9.0-ios18.0net9.0-maccatalyst18.0net9.0-windows10.0.19041

README

Syncfusion .NET MAUI Kanban Board (SfKanban)

The Syncfusion .NET MAUI Kanban Board is a visual workflow management control that provides an efficient interface for tracking and visualizing different stages in a task or workflow. Move cards between columns with drag-and-drop, enforce workflow rules, and customize cards to fit any agile, manufacturing, or support scenario. Build kanban boards for Android, iOS, macOS, and Windows from a single codebase.

Documentation · Getting Started · API Reference · Demos on GitHub · Product Page · Release Notes

.NET MAUI Kanban Board

Using this package with an AI coding agent

Before generating Syncfusion code, ask your AI coding agent to run the Syncfusion setup using the following prompt:

Set up this project for Syncfusion before generating code. Fetch and follow the official instructions at https://ai.syncfusion.com, then report the detected platform, installed skill pack, MCP status, and any required licensing action.

The setup detects your project’s platform and loads the appropriate Syncfusion skill pack. No Syncfusion account or MCP key is required to install or read Syncfusion agent skills.

Platform reference: https://ai.syncfusion.com/maui/llms.txt

Key features

Workflow visualization

  • Visualize any process as columns (To Do, In Progress, Code Review, Done, etc.).
  • Auto-generated columns from data categories, or manually defined columns for full control.
  • Custom column titles, categories, and ordering.
  • Group multiple categories in a single column.

Cards

  • Bind to built-in KanbanModel objects or to your own business objects through card mapping.
  • Built-in card properties: ID, Title, Description, Category, ImageURL, IndicatorFill, Tags.
  • Card templates for complete visual customization of cards.
  • DataTemplateSelector for multiple card designs based on conditions.
  • Status indicators, tag collections, and avatar image support.

Drag and drop

  • Smooth drag-and-drop between columns to update task status.
  • Visual feedback during drag operations.
  • Drag events: DragStart, DragOver, DragEnd for full control.
  • Cancel or validate drops programmatically.

Workflow rules

  • KanbanWorkflow class to restrict allowed transitions between categories.
  • Enforce quality gates (must pass code review before done).
  • Prevent invalid transitions (cannot skip testing).
  • Lock columns by allowing zero transitions out.

Work-in-progress (WIP) limits

  • MinimumLimit and MaximumLimit per column.
  • Visual indicators when limits are exceeded or under-utilized.
  • Use with workflows to enforce capacity constraints.

Sorting

  • SortingMappingPath to sort cards by any property.
  • Ascending or Descending order.
  • Index-based sorting for manual card ordering.
  • Automatic resort on drag-and-drop.

Events

  • CardTapped to handle card selections.
  • DragStart, DragOver, DragEnd for drag-and-drop interactions.
  • Cancel invalid operations and update backend systems.

Look and feel

  • Liquid glass effect for modern, translucent designs (EnableLiquidGlassEffect).
  • Theme integration with application resource dictionaries.
  • Custom column headers with HeaderTemplate.
  • Column sizing controls: fixed ColumnWidth, or MinimumColumnWidth/MaximumColumnWidth ranges.
  • Right-to-left (RTL) layout support for Arabic, Hebrew, and other RTL languages.
  • Localization for multi-language apps.

Supported platforms

Platform Target framework
Android net9.0-android, net10.0-android
iOS net9.0-ios, net10.0-ios
macOS (Mac Catalyst) net9.0-maccatalyst, net10.0-maccatalyst
Windows net9.0-windows10.0.19041, net10.0-windows10.0.19041

Minimum OS versions follow the .NET MAUI supported platforms.

Installation

.NET CLI

dotnet add package Syncfusion.Maui.Kanban

Package Manager Console

Install-Package Syncfusion.Maui.Kanban

Getting started

1. Register the Syncfusion core handler

In MauiProgram.cs, call ConfigureSyncfusionCore():

using Syncfusion.Maui.Core.Hosting;

public static class MauiProgram
{
    public static MauiApp CreateMauiApp()
    {
        var builder = MauiApp.CreateBuilder();
        builder
            .UseMauiApp<App>()
            .ConfigureSyncfusionCore();

        return builder.Build();
    }
}

2. Create a ViewModel with KanbanModel cards

using System.Collections.ObjectModel;
using Syncfusion.Maui.Kanban;

public class KanbanViewModel
{
    public ObservableCollection<KanbanModel> Cards { get; set; }

    public KanbanViewModel()
    {
        Cards = new ObservableCollection<KanbanModel>
        {
            new KanbanModel
            {
                ID = 1,
                Title = "iOS - 1002",
                Category = "Open",
                Description = "Analyze customer requirements",
                IndicatorFill = Colors.Red,
                Tags = new List<string> { "Incident", "Customer" }
            },
            new KanbanModel
            {
                ID = 13,
                Title = "UWP - 13",
                Category = "In Progress",
                Description = "Add responsive support to application",
                IndicatorFill = Colors.Orange,
                Tags = new List<string> { "Story", "Customer" }
            },
            new KanbanModel
            {
                ID = 2543,
                Title = "iOS - 11",
                Category = "Code Review",
                Description = "Check login page validation",
                IndicatorFill = Colors.Blue,
                Tags = new List<string> { "Story" }
            },
            new KanbanModel
            {
                ID = 123,
                Title = "UWP - 21",
                Category = "Done",
                Description = "Check login page validation",
                IndicatorFill = Colors.Green,
                Tags = new List<string> { "Story", "Customer" }
            }
        };
    }
}

3. Add SfKanban to your page

<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             xmlns:kanban="clr-namespace:Syncfusion.Maui.Kanban;assembly=Syncfusion.Maui.Kanban"
             xmlns:local="clr-namespace:YourAppNamespace"
             x:Class="YourAppNamespace.MainPage">

    <ContentPage.BindingContext>
        <local:KanbanViewModel />
    </ContentPage.BindingContext>

    <kanban:SfKanban x:Name="kanban"
                     AutoGenerateColumns="False"
                     ItemsSource="{Binding Cards}">
        <kanban:SfKanban.Columns>
            <kanban:KanbanColumn Title="To Do" Categories="Open" />
            <kanban:KanbanColumn Title="In Progress" Categories="In Progress" />
            <kanban:KanbanColumn Title="Code Review" Categories="Code Review" />
            <kanban:KanbanColumn Title="Done" Categories="Done" />
        </kanban:SfKanban.Columns>
    </kanban:SfKanban>

</ContentPage>

Run the app. The kanban board opens with cards routed to their columns based on the Category value.

Common scenarios

Use a custom data model with mapping

Map your existing models to the kanban control. A CardTemplate is required when not using KanbanModel.

public class TaskDetails
{
    public int TaskID { get; set; }
    public string TaskTitle { get; set; }
    public string TaskDescription { get; set; }
    public string Status { get; set; }
    public string Assignee { get; set; }
    public DateTime DueDate { get; set; }
    public string Priority { get; set; }
}
<kanban:SfKanban ItemsSource="{Binding Tasks}"
                 ColumnMappingPath="Status">
    <kanban:SfKanban.CardTemplate>
        <DataTemplate>
            <Border Stroke="LightGray"
                    StrokeThickness="1"
                    Padding="10"
                    Margin="5">
                <VerticalStackLayout Spacing="5">
                    <Label Text="{Binding TaskTitle}" FontAttributes="Bold" />
                    <Label Text="{Binding TaskDescription}" FontSize="12" />
                    <Label Text="{Binding Assignee}" FontSize="10" />
                </VerticalStackLayout>
            </Border>
        </DataTemplate>
    </kanban:SfKanban.CardTemplate>
</kanban:SfKanban>

Restrict card movement with workflows

kanban.Workflows = new List<KanbanWorkflow>
{
    new KanbanWorkflow("Open",        new List<object> { "In Progress" }),
    new KanbanWorkflow("In Progress", new List<object> { "Code Review", "Open" }),
    new KanbanWorkflow("Code Review", new List<object> { "Done", "In Progress" }),
    new KanbanWorkflow("Done",        new List<object>()) // locked column
};

Set WIP limits on columns

<kanban:KanbanColumn Title="In Progress"
                     Categories="In Progress"
                     MinimumLimit="1"
                     MaximumLimit="3" />

Sort cards within columns

<kanban:SfKanban ItemsSource="{Binding Cards}"
                 SortingMappingPath="Priority"
                 SortingOrder="Ascending" />

Handle card taps and drag events

<kanban:SfKanban x:Name="kanban"
                 ItemsSource="{Binding Cards}"
                 CardTapped="OnKanbanCardTapped"
                 DragStart="OnKanbanDragStart"
                 DragEnd="OnKanbanDragEnd" />
private async void OnKanbanCardTapped(object sender, KanbanCardTappedEventArgs e)
{
    var card = e.Data as KanbanModel;
    await DisplayAlert("Card", $"Tapped: {card.Title}", "OK");
}

private void OnKanbanDragEnd(object sender, KanbanDragEndEventArgs e)
{
    // Persist the new category to your data store
}

Enable liquid glass effect

<Grid BackgroundColor="Transparent">
    <core:SfGlassEffectView EffectType="Clear" CornerRadius="7">
        <kanban:SfKanban EnableLiquidGlassEffect="True"
                         Background="Transparent"
                         ItemsSource="{Binding Cards}" />
    </core:SfGlassEffectView>
</Grid>

For more features, see the Kanban Board documentation.

Dependencies

Installing this package also installs the following packages:

  • Microsoft.Maui.Controls
  • Syncfusion.Maui.Core

Licensing

This is a commercial product and requires a paid license for possession or use. Syncfusion’s licensed software, including this component, is subject to the terms and conditions of Syncfusion's EULA. You can purchase a license here or start a free 30-day trial here.

Register your license key

Register the key in MauiProgram.cs before the app is built:

Syncfusion.Licensing.SyncfusionLicenseProvider.RegisterLicense("YOUR_LICENSE_KEY");

Support and feedback

About Syncfusion

Founded in 2001 and headquartered in Research Triangle Park, N.C., Syncfusion® has more than 26,000+ customers and more than 1 million users, including large financial institutions, Fortune 500 companies, and global IT consultancies.

Today, we provide 1600+ components and frameworks for web (Blazor, ASP.NET Core, ASP.NET MVC, ASP.NET WebForms, JavaScript, Angular, React, Vue, and Flutter), mobile (Xamarin, Flutter, UWP, and JavaScript), and desktop development (WinForms, WPF, WinUI, Flutter and UWP). We provide ready-to-deploy enterprise software for dashboards, reports, data integration, and big data processing. Many customers have saved millions in licensing fees by deploying our software.


[email protected] | www.syncfusion.com | Toll Free: 1-888-9 DOTNET

Downloads by Version

Similar & Alternative Packages

Hand-picked matching NuGet libraries based on tags & ecosystem

Depended On By

Find packages that declare this package as a dependency. NuGet does not provide a reverse-dependency endpoint, so candidates are checked on demand.

Adoption Assessment

A verified publisher signal is available. Assess fit from the package's supported frameworks, license and dependency graph rather than popularity alone.

No SPDX license expression is published. Review the license text and your organisation's policy before redistribution.Compatibility metadata lists 10 target frameworks; confirm the exact target used by your application.The published metadata declares 20 direct dependency entries across framework groups. Inspect the resolved dependency graph for your target framework.

Related Guides & Workflows

Learn how to evaluate, integrate, or audit this package in your .NET project.