Есть ли способ иметь 2 разных объекта, следующих друг за другом в CollectionView в Xamarin.Forms?
У меня есть CollectionView, который показывает список объектов категорий, например:
И я хотел бы иметь список подкатегорий, который будет отображаться сразу после него, как если бы это был тот же список.
Я знаю, что CollectionView принимает только один элемент, но я хотел знать, есть ли способ иметь два списка, которые могут вести себя как один при прокрутке
Спасибо за помощь
2 ответа
вы можете использовать 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- Используйте наследование, чтобы и Категория, и Подкатегория использовали общий родительский элемент, затем создайте индекс, в котором вы убедитесь, что каждый элемент указан после его родителя.
2- используйте представление вложенной коллекции для отображения подкатегорий для каждой категории.