我有一个 MAUI 应用程序,其视图绑定到包含分组
CollectionView
的视图模型,这些属性集:
<CollectionView
x:Name="MyList"
VerticalOptions="FillAndExpand"
ItemsSource="{Binding CollectionViewItemSourceGrouped}"
SelectionMode="Single"
SelectedItem="{Binding MyItem, Mode=TwoWay}"
SelectionChangedCommand="{Binding MySelectionCommand}"
RemainingItemsThreshold="2"
RemainingItemsThresholdReachedCommand="{Binding LoadMoreItemsCommand}"
IsGrouped="True"
EmptyView="No item found.">
我从可等待的 Web api 获取源项目并将其分组,当我第一次导航到视图时,如果我开始来回切换过滤列表的开关,我会正确地对集合进行分组。不幸的是,当我导航到详细信息页面并通过 Shell 导航返回到集合时,如果我再次按下开关并重新加载列表,我总是会得到一些空组,并且它在图形上会导致一团糟。 用作集合源的对象是
CollectionViewItemSourceGrouped
,它是一个具有以下实现的ObservableCollection<ItemsGroup>
:
public class ItemsGroup : ObservableRangeCollection<ItemModel>
{
public DateTime Date { get; private set; }
public ItemsGroup(DateTime date, ObservableRangeCollection<ItemModel> list) : base(list)
{
Date = date;
}
}
每次我重新加载数据时,我确保对象
CollectionViewItemSourceGrouped
被设置为null
或者是一个新的空对象。我希望该集合是空的,而这会继续显示只有标题集的空组。我怎样才能摆脱它们并让收藏正确刷新?
这只发生在 iOS 和 MacCatalyst 上。它在 Android 和 WinUI 上运行良好。