Skip to content

Conversation

@AarthiArjunan
Copy link

@AarthiArjunan AarthiArjunan commented Oct 13, 2025

Description
In this PR I have added the ImageEditor team control Vol3, SP1 release feature details. Here I have added the control and feature details:

-> Maui Kanban - Sorting Feature

@SyncfusionBuild
Copy link
Contributor

Build Status: INPROGRESS 🔃
Build Location: Maui-ImageEditor-Volume3-Sp1-feature-details

@SyncfusionBuild
Copy link
Contributor

CI Status: FAILURE ❌
Source Compilation: SUCCESS ✅
Failure Reason: CI Failure with violation
Build Location: Maui-ImageEditor-Volume3-Sp1-feature-details
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): 1
File Path Error(s): 1
CodeSnippet File Path Missing Error(s): 0
Toc Anchor Tags Validation Error(s): 0
MD Tag Validation Error(s): 1

@SyncfusionBuild
Copy link
Contributor

Build Status: INPROGRESS 🔃
Build Location: Maui-ImageEditor-Volume3-Sp1-feature-details

@SyncfusionBuild
Copy link
Contributor

CI Status: FAILURE ❌
Source Compilation: SUCCESS ✅
Failure Reason: CI Failure with violation
Build Location: Maui-ImageEditor-Volume3-Sp1-feature-details
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): 1
File Path Error(s): 1
CodeSnippet File Path Missing Error(s): 0
Toc Anchor Tags Validation Error(s): 0
MD Tag Validation Error(s): 1


{% endtabs %}

## AnnotationsDeserialized event
Copy link
Collaborator

Choose a reason for hiding this comment

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

Rename to Annotations deserialized event and move this event to above annotation-selected-event

https://github.com/syncfusion-content/maui-docs/blob/b02e659e29e1f9f59f10ca5fc8e709cc571ed8c1/MAUI/ImageEditor/events.md#annotation-selected-event

Copy link
Author

Choose a reason for hiding this comment

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

Changed sir.


## AnnotationsDeserialized event

The 'AnnotationsDeserialized' event is triggered each time deserialization completes and annotations are applied to the ImageEditor control. This allows users to validate the data, update the UI, or execute custom business logic.
Copy link
Collaborator

Choose a reason for hiding this comment

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

This AnnotationsDeserialized event occurs when annotations are deserialized onto the image.

Copy link
Author

Choose a reason for hiding this comment

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

Updated sir.


{% highlight xaml tabtitle="MainPage.xaml" %}

<imageEditor:SfImageEditor x:Name="imageEditor"
Copy link
Collaborator

Choose a reason for hiding this comment

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

@AarthiArjunan, fix code alignment issue and highlight AnnotationsDeserialized line

image

Copy link
Author

@AarthiArjunan AarthiArjunan Oct 14, 2025

Choose a reason for hiding this comment

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

Alignment changed sir. but didn't know how to highlight xaml code.


private void OnAnnotationsDeserialized(object? sender, EventArgs e)
{
Copy link
Collaborator

Choose a reason for hiding this comment

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

Add popup to display and add message Annotation are deserialized

Copy link
Author

Choose a reason for hiding this comment

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

Added sir.

private void OnAnnotationsDeserialized(object? sender, EventArgs e)
{
// Add anything here, like dispaly alert to show event raised
Copy link
Collaborator

Choose a reason for hiding this comment

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

image

Check spell error and remove

Copy link
Author

Choose a reason for hiding this comment

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

Removed sir.

N> Serialization and deserialization are not applicable for custom annotation views.

{% tabs %}

Copy link
Collaborator

Choose a reason for hiding this comment

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

Remove unwanted line added in all places

Copy link
Author

Choose a reason for hiding this comment

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

Removed sir.

keywords: .net maui Kanban sorting, sfKanban sorting in .net maui, .net maui Kanban sorting support.
---

# Sorting in .NET MAUI Kanban (SfKanban)
Copy link
Collaborator

Choose a reason for hiding this comment

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

Card Item Sorting in .NET MAUI Kanban (SfKanban)

Copy link
Author

Choose a reason for hiding this comment

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

Updated sir.

@@ -0,0 +1,460 @@
---
layout: post
title: Sorting in .NET MAUI Kanban control | Syncfusion
Copy link
Collaborator

Choose a reason for hiding this comment

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

Sorting in .NET MAUI Kanban control | Syncfusion®

Copy link
Author

Choose a reason for hiding this comment

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

Updated sir.

title: Sorting in .NET MAUI Kanban control | Syncfusion
description: Learn here all about Sorting support in Syncfusion® .NET MAUI Kanban (SfKanban) control and more.
platform: maui
control: Kanban
Copy link
Collaborator

Choose a reason for hiding this comment

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

Kanban (SfKanban)

Copy link
Author

Choose a reason for hiding this comment

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

Updated sir.


# Sorting in .NET MAUI Kanban (SfKanban)

This feature is used to sort the card items on Kanban Columns by following below properties
Copy link
Collaborator

Choose a reason for hiding this comment

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

The Kanban control supports customizable card sorting within columns based on specific data fields such as priority, due date, or status. Sorting can be applied programmatically and updated dynamically at runtime using following properties

Copy link
Author

Choose a reason for hiding this comment

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

Updated sir.


This feature is used to sort the card items on Kanban Columns by following below properties

* `SortingMappingPath` - This property should correspond to a property name in the KanbanModel or CustomModel. The default value is string.Empty in this case the cards won’t be sorted.
Copy link
Collaborator

Choose a reason for hiding this comment

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

Used to map the sorting field to a property name in the KanbanModel or CustomModel. The default value is string.Empty, in which case the cards will not be sorted.

Copy link
Author

Choose a reason for hiding this comment

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

Updated sir.

This feature is used to sort the card items on Kanban Columns by following below properties

* `SortingMappingPath` - This property should correspond to a property name in the KanbanModel or CustomModel. The default value is string.Empty in this case the cards won’t be sorted.
* `SortingOrder` - Defines the order in which cards appear. The default is Ascending.
Copy link
Collaborator

Choose a reason for hiding this comment

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

SortingOrder - Used to define the direction of cards sorting within each column.

Copy link
Author

Choose a reason for hiding this comment

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

Updated sir.

* `SortingOrder` - Defines the order in which cards appear. The default is Ascending.
* `Ascending` - Cards with lower values appear first.
* `Descending` - Cards with higher values appear first.

Copy link
Collaborator

Choose a reason for hiding this comment

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

Add note: This property is applicable only when a valid value is assigned to SortingMappingPath.

Copy link
Author

Choose a reason for hiding this comment

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

Note added sir.

* `Ascending` - Cards with lower values appear first.
* `Descending` - Cards with higher values appear first.

## Cards position updation while drag and drop
Copy link
Collaborator

@Karthickmani97 Karthickmani97 Oct 13, 2025

Choose a reason for hiding this comment

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

Remove all below topics and explain how various SortBy scenarios can be achieved at the sample level.

Copy link
Author

Choose a reason for hiding this comment

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

Added sir.

@SyncfusionBuild
Copy link
Contributor

Build Status: INQUEUE 🕒
Build Location: Maui-ImageEditor-Volume3-Sp1-feature-details

@SyncfusionBuild
Copy link
Contributor

Build Status: INPROGRESS 🔃
Build Location: Maui-ImageEditor-Volume3-Sp1-feature-details

@SyncfusionBuild
Copy link
Contributor

CI Status: FAILURE ❌
Source Compilation: SUCCESS ✅
Failure Reason: CI Failure with violation
Build Location: Maui-ImageEditor-Volume3-Sp1-feature-details
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): 1
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


# Card Item Sorting in .NET MAUI Kanban (SfKanban)

The Kanban control supports customizable card sorting within columns based on specific data fields such as priority, due date, or status. Sorting can be applied programmatically and updated dynamically at runtime using following properties
Copy link
Collaborator

Choose a reason for hiding this comment

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

Highlight key words

Copy link
Author

Choose a reason for hiding this comment

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

Updated sir.

@SyncfusionBuild
Copy link
Contributor

Build Status: INPROGRESS 🔃
Build Location: Maui-ImageEditor-Volume3-Sp1-feature-details

@SyncfusionBuild
Copy link
Contributor

CI Status: FAILURE ❌
Source Compilation: SUCCESS ✅
Failure Reason: CI Failure with violation
Build Location: Maui-ImageEditor-Volume3-Sp1-feature-details
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): 1
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

* `Ascending` - Cards with lower values appear first.
* `Descending` - Cards with higher values appear first.

N> This property is applicable only when a valid value is assigned to `SortingMappingPath`.
Copy link
Collaborator

Choose a reason for hiding this comment

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

The SortingOrder property is applicable only when a valid value is assigned to SortingMappingPath.

Copy link
Author

Choose a reason for hiding this comment

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

Updated sir.


N> This property is applicable only when a valid value is assigned to `SortingMappingPath`.

## Sorting Behavior in DragEnd Event
Copy link
Collaborator

@Karthickmani97 Karthickmani97 Oct 14, 2025

Choose a reason for hiding this comment

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

Rename subtitle to Customize card order with sorting configuration

Copy link
Author

Choose a reason for hiding this comment

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

Updated sir.


# Card Item Sorting in .NET MAUI Kanban (SfKanban)

The Kanban control supports customizable card sorting within columns based on specific data fields such as `priority`, `due date`, or `status`. Sorting can be applied programmatically and updated dynamically at runtime using following properties.
Copy link
Collaborator

Choose a reason for hiding this comment

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

The Kanban control supports customizable card sorting within columns based on specific data fields such as Priority, DueDate, or Status. Sorting can be configured programmatically and updated dynamically at runtime using the following properties:

Copy link
Author

Choose a reason for hiding this comment

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

Updated sir.


## Sorting Behavior in DragEnd Event

The `DragEnd` event in the `Kanban` control supports three sorting approaches:
Copy link
Collaborator

@Karthickmani97 Karthickmani97 Oct 14, 2025

Choose a reason for hiding this comment

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

Sorting in the Kanban control can be implemented using the following approaches.

  • Custom
  • Index

Copy link
Author

Choose a reason for hiding this comment

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

Updated sir.


### Custom

The SortBy Custom approach must require SortingMappingPath value. In this behavior, cards are sorted and loaded based on the SortingMappingPath value and also cards are dropped based on the SortingMappingPath value to maintain consistent sorting behavior.
Copy link
Collaborator

Choose a reason for hiding this comment

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

To enable custom sorting behavior, a valid property name from the ItemsSource must be mapped using the SortingMappingPath. This mapping ensures that cards are loaded and repositioned based on the corresponding property value, allowing consistent sorting during both initialization and drag-and-drop operations.

Copy link
Author

Choose a reason for hiding this comment

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

Updated sir.

* Index
* ItemsSource Order

### Custom
Copy link
Collaborator

@Karthickmani97 Karthickmani97 Oct 14, 2025

Choose a reason for hiding this comment

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

Rename to Custom Field Sorting

Copy link
Author

Choose a reason for hiding this comment

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

Updated sir.


The SortBy Custom approach must require SortingMappingPath value. In this behavior, cards are sorted and loaded based on the SortingMappingPath value and also cards are dropped based on the SortingMappingPath value to maintain consistent sorting behavior.

The following code example describes the card position changing functionality.
Copy link
Collaborator

@Karthickmani97 Karthickmani97 Oct 14, 2025

Choose a reason for hiding this comment

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

This example demonstrates how card positions are updated based on sorting configurations and property mappings.

Copy link
Author

Choose a reason for hiding this comment

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

Updated sir._


{% highlight c# tabtitle="CardDetails.cs" %}

public class CardDetails : INotifyPropertyChanged
Copy link
Collaborator

Choose a reason for hiding this comment

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

@AarthiArjunan, just add API with gets or sets. please find below for reference

image

Copy link
Author

Choose a reason for hiding this comment

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

Updated sir.

}

{% endhighlight %}

Copy link
Collaborator

Choose a reason for hiding this comment

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

Don't add new line in between tags

Copy link
Author

Choose a reason for hiding this comment

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

Updated sir.


{% highlight c# tabtitle="SortingViewModel.cs" %}

public class SortingViewModel
Copy link
Collaborator

Choose a reason for hiding this comment

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

@AarthiArjunan, follow same approach to reduce line. Add details in single line

image

Copy link
Author

Choose a reason for hiding this comment

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

Updated sir.

}

{% endhighlight %}
{% endtabs %}
Copy link
Collaborator

@Karthickmani97 Karthickmani97 Oct 14, 2025

Choose a reason for hiding this comment

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

Add note

To apply sorting after a drop operation, handle the DragEnd event and explicitly call the RefreshKanbanColumn method. This ensures the column updates to reflect the new card order based on the defined sorting logic.

Copy link
Author

Choose a reason for hiding this comment

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

Updated sir.

{% endhighlight %}
{% endtabs %}

### Index
Copy link
Collaborator

Choose a reason for hiding this comment

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

Rename to Index-Based Sorting

Copy link
Author

Choose a reason for hiding this comment

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

Updated sir.


### Index

SortBy Index approach also depends SortingMappingPath value. This approach allows the users to drop the cards in the Kanban column where the placeholder view is created exactly. It is also helpful to render the cards based on the SortingMappingPath value.
Copy link
Collaborator

@Karthickmani97 Karthickmani97 Oct 14, 2025

Choose a reason for hiding this comment

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

The index-based approach in the Kanban control allows cards to be reordered based on their position within a column. This behavior is influenced by the SortingMappingPath property, which must reference a numeric field in the data model.

This method enables users to drop cards precisely where the placeholder view appears during drag-and-drop operations. It also ensures that cards are rendered according to their SortingMappingPath values.

Copy link
Author

Choose a reason for hiding this comment

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

Updated sir.


SortBy Index approach also depends SortingMappingPath value. This approach allows the users to drop the cards in the Kanban column where the placeholder view is created exactly. It is also helpful to render the cards based on the SortingMappingPath value.

N> The SortingMappingPath property value must be in number format.
Copy link
Collaborator

@Karthickmani97 Karthickmani97 Oct 14, 2025

Choose a reason for hiding this comment

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

N>The SortingMappingPath property value must be in numeric field.

Copy link
Author

Choose a reason for hiding this comment

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

Updated sir.


N> The SortingMappingPath property value must be in number format.

The following cases will dynamically change their SortingMappingPath value when dropping the cards.
Copy link
Collaborator

Choose a reason for hiding this comment

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

Please remove dynamic cases

Copy link
Author

Choose a reason for hiding this comment

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

Updated sir.

Consider, Column A has Card A with priority value 1, Card B with priority value 2, and Card C with priority value 3.
and Column B has Card D with priority value 5, then the dropped Card D will be placed between Card A and Card B. Now, the Cards D, B, and C will be dynamically changed to the priority values as 2, 3, and 4 respectively.

The following code example illustrate the index updation functionality.
Copy link
Collaborator

Choose a reason for hiding this comment

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

The following code example illustrates how card positions are updated using the index-based sorting approach.

Copy link
Author

Choose a reason for hiding this comment

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

Updated sir.

{
this.ApplySortingWithoutPositionChange(e);
}

Copy link
Collaborator

Choose a reason for hiding this comment

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

Add note:

The Index-based sorting logic can be achieved at the sample level. To implement dynamic sorting after a drag-and-drop operation, handle the DragEnd event and apply sorting logic to update the SortingMappingPath values accordingly. Once updated, invoke the RefreshKanbanColumn method to reflect the changes in the UI.

Copy link
Author

Choose a reason for hiding this comment

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

Updated sir.

}

/// <summary>
/// Applies sorting without changing the position of the cards.
Copy link
Collaborator

Choose a reason for hiding this comment

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

Implement index-based sorting logic

Explain steps one by one and add code changes. need to explain and add method like that

Copy link
Author

Choose a reason for hiding this comment

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

Updated sir.

{% endhighlight %}
{% endtabs %}

### ItemsSource Order
Copy link
Collaborator

Choose a reason for hiding this comment

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

Remove this and add in note:

Note: To disable sorting logic, avoid assigning a value to the SortingMappingPath property. This ensures that card positions remain static and reflect the order of the ItemsSource collection, making it suitable for scenarios where sorting is not required or is managed externally.

Copy link
Author

Choose a reason for hiding this comment

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

Updated sir.

@SyncfusionBuild
Copy link
Contributor

Build Status: INPROGRESS 🔃
Build Location: Maui-ImageEditor-Volume3-Sp1-feature-details

@SyncfusionBuild
Copy link
Contributor

CI Status: FAILURE ❌
Source Compilation: SUCCESS ✅
Failure Reason: CI Failure with violation
Build Location: Maui-ImageEditor-Volume3-Sp1-feature-details
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): 1
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: Maui-ImageEditor-Volume3-Sp1-feature-details

@SyncfusionBuild
Copy link
Contributor

CI Status: SUCCESS ✅
Source Compilation: SUCCESS ✅
Build Location: Maui-ImageEditor-Volume3-Sp1-feature-details
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: Maui-ImageEditor-Volume3-Sp1-feature-details

@SyncfusionBuild
Copy link
Contributor

CI Status: SUCCESS ✅
Source Compilation: SUCCESS ✅
Build Location: Maui-ImageEditor-Volume3-Sp1-feature-details
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