将多个字符串和 ObservableCollection 传递和绑定到 RefreshView/CollectionView?

问题描述

Xamarin Forms 的新手,在 C# ASP.Net MVC 背景中有很多背景。我想知道 Xamarin Forms 中将更复杂的数据模型传递给 xaml 视图的最佳模式是什么。我想要实现的是传递以下数据模型:

String DateHeader
ObservableCollection<CustomObject>
String DateHeader
ObservableCollection<CustomObject>
String DateHeader
ObservableCollection<CustomObject>
String DateHeader
ObservableCollection<CustomObject>
String DateHeader
ObservableCollection<CustomObject>

到 RefreshView 集合:

<RefreshView IsRefreshing="{Binding IsRefreshing}" Command="{Binding GetCustomObjectModelCommand}">
    <CollectionView ItemsSource="{Binding CustomObjectModel}">
        <CollectionView.ItemsLayout>
            <LinearItemsLayout Orientation="Vertical"/>
        </CollectionView.ItemsLayout>
        <CollectionView.ItemTemplate>
            <DataTemplate>
                <StackLayout Padding="10">
                    // Data goes here
                </StackLayout>
            </DataTemplate>
        </CollectionView.ItemTemplate>
    </CollectionView>
</RefreshView>

我目前有一个单 ObservableCollection 回传和绑定工作正常的模型。在 ASP.Net MVC 中,我只在视图中使用 each 和 loop,但试图弄清楚如何在 Xamarin Forms 中实现,因为视图逻辑较少。

UI 输出的目标类似于:

日期标题

  • 列出集合项
  • 列出集合项
  • 列出集合项
  • 列出集合项
  • 列出集合项

日期标题

  • 列出集合项
  • 列出集合项
  • 列出集合项
  • 列出集合项
  • 列出集合项

日期标题

  • 列出集合项
  • 列出集合项
  • 列出集合项
  • 列出集合项
  • 列出集合项

等等....

解决方法

我认为您可以在 CollectionView 中使用分组功能

https://docs.microsoft.com/en-us/xamarin/xamarin-forms/user-interface/collectionview/grouping