Skip to content

Conversation

VishalOmprasad
Copy link
Contributor

@VishalOmprasad VishalOmprasad commented Aug 21, 2025

Description

MAUI Kanban UG document updated regarding custom mapping feature.

For Cards and Column, separate PRs raised
Cards - #3574
Column - #3575

@SyncfusionBuild
Copy link
Contributor

Build Status: INPROGRESS 🔃
Build Location: Kanban-UG-changes-dev

@SyncfusionBuild
Copy link
Contributor

CI Status: SUCCESS ✅
Source Compilation: SUCCESS ✅
Build Location: Kanban-UG-changes-dev
Technical Error(s): 0
Spelling Error(s): 0
Image Alt Text Error(s): 0
Image Size Error(s): 0
Image Name Error(s): 0
Front matter Error(s): 0
File Path Error(s): 0
CodeSnippet File Path Missing Error(s): 0
Toc Anchor Tags Validation Error(s): 0
MD Tag Validation Error(s): 0

@SyncfusionBuild
Copy link
Contributor

Build Status: INPROGRESS 🔃
Build Location: Kanban-UG-changes-dev

@SyncfusionBuild
Copy link
Contributor

CI Status: SUCCESS ✅
Source Compilation: SUCCESS ✅
Build Location: Kanban-UG-changes-dev
Technical Error(s): 0
Spelling Error(s): 0
Image Alt Text Error(s): 0
Image Size Error(s): 0
Image Name Error(s): 0
Front matter Error(s): 0
File Path Error(s): 0
CodeSnippet File Path Missing Error(s): 0
Toc Anchor Tags Validation Error(s): 0
MD Tag Validation Error(s): 0

{% endtabs %}

N> When using a custom model as the [`ItemsSource`](https://help.syncfusion.com/cr/maui/Syncfusion.Maui.Kanban.SfKanban.html#Syncfusion_Maui_Kanban_SfKanban_ItemsSource), the binding context for each card is set to an instance of that custom model. This means that all data bindings within the [`CardTemplate`](https://help.syncfusion.com/cr/maui/Syncfusion.Maui.Kanban.SfKanban.html#Syncfusion_Maui_Kanban_SfKanban_CardTemplate) should reference the properties of your custom model directly.
Copy link
Contributor

@Karthickmani97 Karthickmani97 Aug 25, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Use below content

  • When a custom data model is assigned to the ItemsSource property of the SfKanban control, each card's BindingContext is set to an instance of that model. Therefore, bindings within the CardTemplate must directly reference the properties defined in the custom model.

  • The default card UI is not applicable when using a custom model. To render the card content correctly, you must define a custom DataTemplate using the CardTemplate property.

Move these changes to here - https://github.com/syncfusion-content/maui-docs/pull/3556/files#diff-32936bde17a7640f7a2f8e8c0d257094b7678e882ac0b7fd34111546624f1e74R22

image

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Changed to below content.

{% endtabs %}

N> When using a custom model as the [`ItemsSource`](https://help.syncfusion.com/cr/maui/Syncfusion.Maui.Kanban.SfKanban.html#Syncfusion_Maui_Kanban_SfKanban_ItemsSource), the binding context for each card is set to an instance of that custom model. This means that all data bindings within the [`CardTemplate`](https://help.syncfusion.com/cr/maui/Syncfusion.Maui.Kanban.SfKanban.html#Syncfusion_Maui_Kanban_SfKanban_CardTemplate) should reference the properties of your custom model directly.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Use below content:

When using a custom model, the default card UI is not applied. You must define a custom DataTemplate via the CardTemplate property to render the card content.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Changed the content as specified and raised new PR #3574.

Reverted the changes in this PR.

@@ -277,3 +277,353 @@ kanban.Columns.Add(todoColumn);
{% endhighlight %}

{% endtabs %}

## Appearance Customization
Copy link
Contributor

@Karthickmani97 Karthickmani97 Aug 25, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Customize column appearance

The .NET MAUI Kanban control allows you to customize the column's background, no card template UI, placeholder style, and more.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Modified as above and raised new PR #3575


## Appearance Customization

### Customizing Backgrounds
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Customize the column background

Use the Background property of the KanbanColumn to customize the background color of each column in the Kanban control.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Modified as above and raised new PR - #3575


{% highlight xaml %}

<kanban:KanbanColumn Title="To Do"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@VishalOmprasad, as we discussed use kanban instance, and define columns

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Used kanban instance #3575


<kanban:KanbanColumn Title="To Do"
Categories="Open"
Background="AliceBlue">
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Highlight Background line. Use below colors and add codes based on that

maui-kanban-column-customization

openColumn.PlaceholderStyle = placeholderStyle;
kanban.Columns.Add(openColumn);

{% endhighlight %}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Add KanbanViewModel file

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added KanbanViewModel file #3575


{% endtabs %}

### NoCardTemplate
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Customize no card appearance using DataTemplate

Use the NoCardTemplate property of the KanbanColumn to define a custom UI for columns that have no cards. This allows you to display meaningful text or messages when a column is empty.

The following example shows how to define a custom no card template using a DataTemplate

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Content modified as above - #3575

</DataTemplate>
</ContentPage.Resources>

<kanban:SfKanban x:Name="kanban"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Add codes based on gif added.

maui-kanban-column-customization

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Codes added based on the GIF image #3575


{% tabs %}

{% highlight xaml %}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Use below template for files name:

XAML
C#
TaskDetails.cs (For custom model)
KanbanViewModel.cs

Reference:

image

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code snippet templated used as above and raised new PR - #3575


{% endtabs %}

### PlaceholderStyle
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Customize the placeholder style

Use the PlaceholderStyle property of the KanbanColumn to style the placeholder area where cards can be dropped during drag-and-drop operations. This enhances visual clarity and improves the user experience during interactions.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Content modified as above - #3575

@@ -505,7 +509,415 @@ doneColumn.Categories = new List<object>() { "Done" };

{% endtabs %}

### Running the Application
## Custom Model mapping
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@VishalOmprasad, follow below title and reference template shared

Populate .NET MAUI Kanban item source

Creating the default model tasks

Reference - https://help.syncfusion.com/maui/scheduler/getting-started#creating-the-scheduler-appointments

Creating the custom model tasks with data mapping

Reference - https://help.syncfusion.com/maui/scheduler/getting-started?cs-save-lang=1&cs-lang=csharp#creating-the-custom-eventsappointments-with-data-mapping

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Followed like the above specified template for title and its contents.


{% highlight C# %}

public class KanbanCustomModel : INotifyPropertyChanged
Copy link
Contributor

@Karthickmani97 Karthickmani97 Aug 25, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Follow this

image

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code snippet template changed as above

}
}

public string TaskImageURL
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Use proper API name to meet C# standards

Copy link
Contributor Author

@VishalOmprasad VishalOmprasad Aug 26, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Proper API names used in custom model class code snippet

{% endhighlight %}

{% endtabs %}

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Add notes:

When using a custom model, the default card UI is not applied. You must define a custom DataTemplate via the CardTemplate property to render the card content.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Notes added in Getting Started

@SyncfusionBuild
Copy link
Contributor

Build Status: INPROGRESS 🔃
Build Location: Kanban-UG-changes-dev

@SyncfusionBuild
Copy link
Contributor

The running CI Job is terminated due to changes committed on the source branch for this Merge Request and CI triggered for latest commit.

@SyncfusionBuild
Copy link
Contributor

CI Status: ABORTED ❌
Source Compilation: FAILURE ❌
Build Location: Kanban-UG-changes-dev

@SyncfusionBuild
Copy link
Contributor

Build Status: INPROGRESS 🔃
Build Location: Kanban-UG-changes-dev

@SyncfusionBuild
Copy link
Contributor

CI Status: SUCCESS ✅
Source Compilation: SUCCESS ✅
Build Location: Kanban-UG-changes-dev
Technical Error(s): 0
Spelling Error(s): 0
Image Alt Text Error(s): 0
Image Size Error(s): 0
Image Name Error(s): 0
Front matter Error(s): 0
File Path Error(s): 0
CodeSnippet File Path Missing Error(s): 0
Toc Anchor Tags Validation Error(s): 0
MD Tag Validation Error(s): 0

@SyncfusionBuild
Copy link
Contributor

Build Status: INPROGRESS 🔃
Build Location: Kanban-UG-changes-dev

@SyncfusionBuild
Copy link
Contributor

Build Status: INPROGRESS 🔃
Build Location: Kanban-UG-changes-dev

@SyncfusionBuild
Copy link
Contributor

CI Status: SUCCESS ✅
Source Compilation: SUCCESS ✅
Build Location: Kanban-UG-changes-dev
Technical Error(s): 0
Spelling Error(s): 0
Image Alt Text Error(s): 0
Image Size Error(s): 0
Image Name Error(s): 0
Front matter Error(s): 0
File Path Error(s): 0
CodeSnippet File Path Missing Error(s): 0
Toc Anchor Tags Validation Error(s): 0
MD Tag Validation Error(s): 0

@SyncfusionBuild
Copy link
Contributor

Build Status: INPROGRESS 🔃
Build Location: Kanban-UG-changes-dev

@SyncfusionBuild
Copy link
Contributor

CI Status: SUCCESS ✅
Source Compilation: SUCCESS ✅
Build Location: Kanban-UG-changes-dev
Technical Error(s): 0
Spelling Error(s): 0
Image Alt Text Error(s): 0
Image Size Error(s): 0
Image Name Error(s): 0
Front matter Error(s): 0
File Path Error(s): 0
CodeSnippet File Path Missing Error(s): 0
Toc Anchor Tags Validation Error(s): 0
MD Tag Validation Error(s): 0

@SyncfusionBuild
Copy link
Contributor

Build Status: INPROGRESS 🔃
Build Location: Kanban-UG-changes-dev

@SyncfusionBuild
Copy link
Contributor

CI Status: SUCCESS ✅
Source Compilation: SUCCESS ✅
Build Location: Kanban-UG-changes-dev
Technical Error(s): 0
Spelling Error(s): 0
Image Alt Text Error(s): 0
Image Size Error(s): 0
Image Name Error(s): 0
Front matter Error(s): 0
File Path Error(s): 0
CodeSnippet File Path Missing Error(s): 0
Toc Anchor Tags Validation Error(s): 0
MD Tag Validation Error(s): 0

@SyncfusionBuild
Copy link
Contributor

Build Status: INPROGRESS 🔃
Build Location: Kanban-UG-changes-dev

@SyncfusionBuild
Copy link
Contributor

CI Status: SUCCESS ✅
Source Compilation: SUCCESS ✅
Build Location: Kanban-UG-changes-dev
Technical Error(s): 0
Spelling Error(s): 0
Image Alt Text Error(s): 0
Image Size Error(s): 0
Image Name Error(s): 0
Front matter Error(s): 0
File Path Error(s): 0
CodeSnippet File Path Missing Error(s): 0
Toc Anchor Tags Validation Error(s): 0
MD Tag Validation Error(s): 0

@SyncfusionBuild
Copy link
Contributor

Build Status: INPROGRESS 🔃
Build Location: Kanban-UG-changes-dev

@SyncfusionBuild
Copy link
Contributor

CI Status: SUCCESS ✅
Source Compilation: SUCCESS ✅
Build Location: Kanban-UG-changes-dev
Technical Error(s): 0
Spelling Error(s): 0
Image Alt Text Error(s): 0
Image Size Error(s): 0
Image Name Error(s): 0
Front matter Error(s): 0
File Path Error(s): 0
CodeSnippet File Path Missing Error(s): 0
Toc Anchor Tags Validation Error(s): 0
MD Tag Validation Error(s): 0

@SyncfusionBuild
Copy link
Contributor

Build Status: INPROGRESS 🔃
Build Location: Kanban-UG-changes-dev

@SyncfusionBuild
Copy link
Contributor

CI Status: SUCCESS ✅
Source Compilation: SUCCESS ✅
Build Location: Kanban-UG-changes-dev
Technical Error(s): 0
Spelling Error(s): 0
Image Alt Text Error(s): 0
Image Size Error(s): 0
Image Name Error(s): 0
Front matter Error(s): 0
File Path Error(s): 0
CodeSnippet File Path Missing Error(s): 0
Toc Anchor Tags Validation Error(s): 0
MD Tag Validation Error(s): 0

@SyncfusionBuild
Copy link
Contributor

Build Status: INPROGRESS 🔃
Build Location: Kanban-UG-changes-dev

@SyncfusionBuild
Copy link
Contributor

The running CI Job is terminated due to changes committed on the source branch for this Merge Request and CI triggered for latest commit.

@SyncfusionBuild
Copy link
Contributor

CI Status: ABORTED ❌
Source Compilation: FAILURE ❌
Build Location: Kanban-UG-changes-dev

@SyncfusionBuild
Copy link
Contributor

Build Status: INPROGRESS 🔃
Build Location: Kanban-UG-changes-dev

@SyncfusionBuild
Copy link
Contributor

CI Status: SUCCESS ✅
Source Compilation: SUCCESS ✅
Build Location: Kanban-UG-changes-dev
Technical Error(s): 0
Spelling Error(s): 0
Image Alt Text Error(s): 0
Image Size Error(s): 0
Image Name Error(s): 0
Front matter Error(s): 0
File Path Error(s): 0
CodeSnippet File Path Missing Error(s): 0
Toc Anchor Tags Validation Error(s): 0
MD Tag Validation Error(s): 0

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants