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.
Hi Team,
Please consider adding a way to cancel a group's expand/collapse action when the user taps on the group header.
For example, through a GroupTapping event handler that fires just before GroupTapped, and we can execute logic that prevents the operation:
private void RadCollectionView_OnGroupTapping(object sender, RadTappingEventArgs<GroupContext> e)
{
if (e.Data.Key.ToString() == "GroupToStayPermanentlyExpanded")
{
e.Cancel();
}
}
// which uses this imaginary event args with Cancel method
public class RadTappingEventArgs<T>(T data) : RadTappedEventArgs<T>(data)
{
public void Cancel()
{
// prevents GroupTapped event
}
}
Thank you,
Rodrigo
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.
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.
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.
As the Subject says - the CollectionView FooterTemplate Content IsVisible Property is ignored.
First i thought Binding update is not working, but it's not working at all, even if set "hard"
Take your Header & Footer CollectionView example and set IsVisible to false on the Grid