XAML .Net Maui中的主从式集合视图

hgb9j2n6  于 2022-12-07  发布在  .NET
关注(0)|答案(1)|浏览(204)

Net Maui上的收藏视图中,我尝试创建类别,然后创建每个类别的项目。这对于视图模型和Linq、列表甚至数组索引来说都是微不足道的。例如在Blazor中

foreach(var cat in viewModel.Categories)
{
   <select id="@cat" binding=@viewModel.Categories.Where(z=> z.Category == cat)>
   </select>  
}

但我在使用CollectionView时遇到了问题

<CollectionView x:Name="collectionViewMenuPerCategory" ItemsSource="{Binding Categories}" ItemsLayout="VerticalList" Margin="10" >
   <CollectionView.ItemTemplate>
       <DataTemplate>
            <VerticalStackLayout>
                <Label text="{Binding CategoryName}" FontSize="34">
                <CollectionView x:Name="CollectionViewPerCategory" ItemsSource="{Binding Source={RelativeSource AncestorType={x:Type local:MenuViewModel}}, Path=Menu.Items.Where(z=> z.Category == @CategoryName?}" ItemsLayout="VerticalList">
                   <!-- Each Item in sub collectionview for each category --> 
                </CollectionView>
      </DataTemplate>
    </CollectionView.ItemTemplate>
</CollectionView>

我已经看到了WPF的ICollectionView过滤,但没有看到毛伊岛的

irtuqstp

irtuqstp1#

是的,CollectionView支持显示分组数据,并定义了以下属性来控制分组数据的显示方式:

  • 类型为boolIsGrouped指示基础数据是否应按组显示。此属性的默认值为false。
      • GroupHeaderTemplate**,类型为DataTemplate,用于每个组的页眉的模板。
      • GroupFooterTemplate**,类型为DataTemplate,用于每个组的页脚的模板。

这些属性由BindableProperty对象支持,这意味着这些属性可以是数据绑定的目标。
因此,分组数据的过程是:

  • 创建为单个项建模的类型。
  • 创建为单个项组建模的类型。
  • 创建IEnumerable集合,其中T是模拟单个项组得类型.此集合是组得集合,用于存储分组数据.请向IEnumerable集合添加数据.

有关详细信息,您可以查看文档:Display grouped data in a CollectionView

相关问题