繁体   English   中英

Xamarin 表单在 ViewModel 中使用多个列表

[英]Xamarin Forms Using multiple lists in ViewModel

我有个问题。 我创建了一个带有 ViewModel 的 CollectionView,在该 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 中显示出来,但 Picker 是空的。 在选择器中,我想要来自secondList的元素Name

我怎样才能解决这个问题?

问题是CollectionView元素的DataTemplateBindingContextimageList一个项目。 因此绑定将不起作用,因为我假设您的secondList不是您在imageList使用的元素模型的一部分,而是用于页面的整个视图模型的一部分。

我建议使用RelativeBinding 我不知道您的模型名称,但您的Picker绑定可能如下所示:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM