Unplanned
Last Updated: 24 Mar 2025 10:48 by Legrand
Created by: Taylor
Comments: 2
Category: CollectionView
Type: Feature Request
7
Provide keyboard navigation support for CollectionView
Unplanned
Last Updated: 18 Sep 2024 11:34 by ADMIN
Created by: Matthew
Comments: 3
Category: CollectionView
Type: Feature Request
7

Add support for sticky group headers (iOS, Android)

This feature is available in the ListView control. E.g. On iOS using the built-in CollectionView it can be added this way:

public class CollectionViewPlatformHandler : CollectionViewHandler { /// <inheritdoc /> protected override ItemsViewLayout SelectLayout() { var layout = base.SelectLayout(); if (ItemsView.IsGrouped && layout is UICollectionViewFlowLayout flowLayout) { // Enable sticky section headers. flowLayout.SectionHeadersPinToVisibleBounds = true; } return layout; } }

Add support for scrollable index titles (iOS).

This feature is available in the ListView control. E.g. On iOS using the built-in CollectionView it can be added this way:

    public class CollectionViewPlatformHandler : CollectionViewHandler
    {
        /// <inheritdoc />
        protected override UIView CreatePlatformView()
        {
            var platformView = base.CreatePlatformView();
            if (ItemsView.IsGrouped && ItemsView.ItemsSource is IEnumerable<IGrouping<string, object>> groups && platformView.Subviews[0] is UICollectionView collectionView)
            {
                // Enable index titles.
                collectionView.DataSource = new GroupedCollectionViewDataSource(collectionView.DataSource, groups.Select(q => q.Key));
            }

            return platformView;
        }
        
        private class GroupedCollectionViewDataSource(IUICollectionViewDataSource datasource, IEnumerable<string> sections) : UICollectionViewDataSource
        {
            public override nint NumberOfSections(UICollectionView collectionView) => datasource.NumberOfSections(collectionView);
            public override nint GetItemsCount(UICollectionView collectionView, nint section) => datasource.GetItemsCount(collectionView, section);
            public override UICollectionViewCell GetCell(UICollectionView collectionView, NSIndexPath indexPath) => datasource.GetCell(collectionView, indexPath);
            public override UICollectionReusableView GetViewForSupplementaryElement(UICollectionView collectionView, NSString elementKind, NSIndexPath indexPath) => datasource.GetViewForSupplementaryElement(collectionView, elementKind, indexPath);
            public override string[] GetIndexTitles(UICollectionView collectionView) => sections.ToArray();
        }
    }
 

Note: This is available out-of-the-box on iOS 14 and above for a native UICollectionView. See documentation.

https://developer.apple.com/documentation/uikit/uicollectionviewdatasource/2851455-indextitlesforcollectionview

Unplanned
Last Updated: 16 Jan 2025 09:37 by ADMIN
Created by: Didi
Comments: 2
Category: CollectionView
Type: Feature Request
7

In the current CollectionView implementation, the CollectionView will start with all the groups expanded. The only way to have any form of preference is to programmatically interact with the DataView after-the-fact https://docs.telerik.com/devtools/maui/controls/collectionview/grouping/expand-collapse

Requested Feature
A better approach that I am requesting a feature for is to have a property available for the CollectionView that sets this value ahead of time.

For example, you could add it as a BindableProperty on the GroupDescriptor class and on the GroupDefinition is to have an IsExapanded property.
Unplanned
Last Updated: 13 Nov 2024 15:45 by Didi
Created by: Didi
Comments: 0
Category: CollectionView
Type: Feature Request
6
Provide a way to set header and footer that are always visible in the CollectionView and are excluded from the scrolling.
Unplanned
Last Updated: 18 Sep 2024 11:31 by Matthew
Created by: Matthew
Comments: 0
Category: CollectionView
Type: Feature Request
5

Add an option to scroll fast to elements inside the CollectionView, something like jump list approach.

This feature is available in the iOS UICollectionView https://developer.apple.com/documentation/uikit/uicollectionviewdatasource/2851455-indextitlesforcollectionview

It could be a great addition to the Telerik MAUI RadCollectionView features set.

 
Unplanned
Last Updated: 04 Apr 2025 06:28 by Trevor
Created by: Trevor
Comments: 0
Category: CollectionView
Type: Feature Request
5

Provide support for right-to-left flow direction: 

The current behavior is that the items

when the device language is set to an RTL language (like Hebrew or Arabic) causing the FlowDirection to be set to RightToLeft, where UI will show correctly with RTL FlowDirection, but the item's corresponding tap areas are still in the LTR positions. 

Unplanned
Last Updated: 08 Nov 2024 14:53 by Marat
Currently, when the Move method of the ItemsSource collection is called for a certain item, the item position is immediately updated without animation.
Unplanned
Last Updated: 18 Sep 2024 13:13 by Srilekha

In MAUI CollectionView when scrolling an item into view, the exact position of the item after the scroll has completed can be specified with the position argument of the ScrollTo methods.

Please provide such option for Telerik MAUI CollectionView inside the ScrollItemIntoView method.

Unplanned
Last Updated: 13 Nov 2024 15:47 by Didi
Created by: Didi
Comments: 0
Category: CollectionView
Type: Feature Request
3
Add events to handle when the CollectionView cells are unloaded/recycled and created.
Unplanned
Last Updated: 05 Feb 2025 07:10 by Nathan
The RadListView Delegate sort, filter and group descriptors have bindable properties, for example: Func<object, object) KeyExtractor, Filter.
The RadCollectionView delegate descriptors use KeyLookup, Filter which type is interface and do not expose bindable properties.

the option is to implement an interface
Unplanned
Last Updated: 14 Aug 2024 08:18 by Steve
Created by: Steve
Comments: 0
Category: CollectionView
Type: Feature Request
2
We would like to give the user the ability to reorder the groups.
Unplanned
Last Updated: 13 Nov 2024 15:48 by Didi
Instead of reordering through the UI, expose an option to programmatically enter reordering.
Unplanned
Last Updated: 28 Jan 2025 09:01 by ADMIN
When scrolling to the last item using the ScrollITemIntoVIew() method to show the last item of a CollectionView, It doesn't scroll to the end of the list and only show the first pixels of the last item.
Unplanned
Last Updated: 14 Oct 2024 18:57 by Alan

Currently the group descriptors provide a SortOrder property, so the groups are sorted alphabetically in descending or ascending order.  We would need to cover the following scenarios:

- allow certain groups to be ordered at the top, possibly by specifying an comparer or a separate group sort property.

- show the groups in order the corresponding items appear in the ItemsSource.

Unplanned
Last Updated: 13 Nov 2024 15:54 by Didi

Currently, the LoadOnDemandCollection accepts a callback of the following format in the constructor:

public LoadOnDemandCollection(Func<CancellationToken, IEnumerable> action)

It is a very common scenario to populate the items asynchronously. In its current form the collection would require blocking the current thread to populate the results:

ItemsSource = new LoadOnDemandCollection((cancelationToken) =>
{
    var result = new List<ItemsModel>();
    try
    {
        var items = dataService.GetItemsAsync().Result;

        // TODO: Handle the result.

        return result;
    }
    catch (Exception e)
    {
        // TODO: Handle the exception.
        return null;
    }
});

 

This is not desired, as using Task.Result blocks the current thread and is considered an anti-pattern, in general.

A better approach would be to add a second overload of the constructor, allowing asynchronous calls:

public LoadOnDemandCollection(Func<CancellationToken, Task<IEnumerable>> action)

This way we can use async and await in the callback instead:

ItemsSource = new LoadOnDemandCollection(async (cancelationToken) =>
{
    var result = new List<ItemsModel>();
    try
    {
        var items = await dataService.GetItemsAsync();

        // TODO: Handle the result.

        return result;
    }
    catch (Exception e)
    {
        // TODO: Handle the exception.
        return null;
    }
});

According to my tests, the first blocking approach is not a problem, as the LoadOnDemandCollection starts a thread internally. That behavior is not obvious however, and using Task.Result is somewhat counterintuitive, so the second approach is much better from the user's perspective.

Unplanned
Last Updated: 13 Nov 2024 15:55 by Didi
Implement alternating item styles for CollectionView.
Unplanned
Last Updated: 22 Nov 2024 08:07 by Mauricio
Created by: Mauricio
Comments: 0
Category: CollectionView
Type: Feature Request
1
Provide a pressed visual state.
Unplanned
Last Updated: 21 Jan 2025 05:51 by ADMIN

The ItemsSource of the views is populated in the ViewModel of the page. This is done in a command that is triggered by the NavigatedTo event of the page, which is forwarded via EventToCommandBehavior from the Maui Toolkit.

When using the RadCollectionView the loaded items are no longer displayed. 

When the ObservableCollection of the items is completely reconstructed and reassigned the display works.

Unplanned
Last Updated: 26 Feb 2025 16:35 by Elke
CollectionView item swipe doesn't work.
Unplanned
Last Updated: 14 Apr 2025 11:35 by Stephen

Provide a built it way to notify the parent group when the items in the nested groups are changed. 

For example, there is no PropertyChanged or CollectionChanged notification that we can hook in to in order to detect updates in parent group headers when the count changes in a subgroup. Only the leaf group headers get updated, but not the parents.

 

1 2