Есть ли способ иметь 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- используйте представление вложенной коллекции для отображения подкатегорий для каждой категории.

Другие вопросы по тегам