我有一个 CollectionView,它显示了 Categories 对象的列表,如下所示:
而且我想在它之后列出一个子类别列表,就好像它是同一个列表一样。
我知道 CollectionView 只需要一个项目,但我想知道是否有一种方法可以让两个列表在滚动时表现得像一个
谢谢您的帮助
您可以一个接一个地使用 2 StackLayout 并像这样设置 BindableLayout:
<StackLayout Orientation="Horizontal">
<StackLayout Orientation="Horizontal" BindableLayout.ItemsSource="{Binding CategoryItemSource}">
<BindableLayout.ItemTemplate>
<DataTemplate>
<!--CategoryItemTemplate-->
</DataTemplate>
</BindableLayout.ItemTemplate>
</StackLayout>
<StackLayout Orientation="Horizontal" BindableLayout.ItemsSource="{Binding SubCategoryItemSource}">
<BindableLayout.ItemTemplate>
<DataTemplate>
<!--SubCategoryItemTemplate-->
</DataTemplate>
</BindableLayout.ItemTemplate>
</StackLayout>
</StackLayout>
在这种情况下,第一个 stacklayout 向您显示类别项目,然后第二个 stacklayout 显示子类别
两种可能的解决方案:
1- 使用继承使 Category 和 SubCategory 共享一个公社 Parent 然后建立一个索引,确保每个元素都列在其父级之后。
2-使用嵌套的集合视图来显示每个类别的子类别。