Xamarin Forms Использование нескольких списков в ViewModel - PullRequest
0 голосов
/ 31 января 2020

У меня проблема. Я создал CollectionView с ViewModel, в этом ViewModel у меня есть 2 разных списков. Теперь я знаю, как отобразить данные из 1 списка, но теперь я хочу в табличке с данными выбрать из данных второго списка. Вот код xaml:

<CollectionView ItemsSource="{Binding imageList}">
    <CollectionView.ItemsLayout>
        <GridItemsLayout Orientation="Vertical" />
    </CollectionView.ItemsLayout>
    <CollectionView.ItemTemplate>
        <DataTemplate>

            <Picker Grid.Row="0" Grid.RowSpan="2" Grid.Column="3" Title="Formaat" ItemsSource="{Binding secondList}" HorizontalOptions="FillAndExpand" />

            <Label Grid.Row="0" Grid.Column="4" VerticalTextAlignment="Center" VerticalOptions="Center"  
                    HorizontalOptions="Center" Text="{Binding Price, StringFormat='€ {0:F2}'}" TextColor="Black"
                    FontSize="18" />
        </DataTemplate>
    </CollectionView.ItemTemplate>
</CollectionView>

Таким образом, цена отображается в imageList, но сборщик пуст. В Средстве выбора я хочу элемент Name из secondList

Как я могу это исправить?

1 Ответ

0 голосов
/ 31 января 2020

Проблема в том, что ваш BindingContext в DataTemplate вашего CollectionView элемента - это элемент из вашего imageList. Поэтому привязка не будет работать, так как я предполагаю, что secondList не является частью модели элемента, которую вы используете в imageList, а скорее является частью всей модели представления, используемой для страницы.

Я бы предложил использовать RelativeBinding. Я не знаю названий ваших моделей, но ваша привязка Picker может выглядеть так:

<Picker ItemsSource="{Binding Source={RelativeSource AncestorType={x:Type local:YourViewModelTypeName}}, Path=secondList}" />
...