首页 > 解决方案 > Xamarin 绑定 ViewCell

问题描述

<ListView Grid.Column="0" ItemsSource="{Binding CardItems[0]}" RowHeight="100">
                    <ListView.ItemTemplate>
                        <DataTemplate>
                            <ViewCell>
                                <StackLayout>
                                    <StackLayout.GestureRecognizers>
                                        <TapGestureRecognizer Command="{Binding CardItemTapCommand}" />
                                    </StackLayout.GestureRecognizers>
                                    <Image Source="{Binding Image}" HeightRequest="64"/>
                                    <Label Text="{Binding Text}"/>
                                </StackLayout>
                            </ViewCell>
                        </DataTemplate>
                    </ListView.ItemTemplate>
                </ListView>

我的视图将其绑定上下文设置为相应的视图模型。我的 CardItemTapCommand 不起作用。(我认为这是因为每个视单元的绑定上下文是 cardItem[0] 列表)。再次将单元格的绑定上下文设置为视图模型是一个坏主意吗?

标签: xamarin.forms

解决方案


你可以试试这个

<ContentPage ... 
             x:Name="PageName">

   <ContentPage.Content>
       ...
       <StackLayout.GestureRecognizers>
          <TapGestureRecognizer Command="{Binding Path=BindingContext.TapCommand, 
           Source={x:Reference PageName}}"/>
       </StackLayout.GestureRecognizers>
       ...
   </ContentPage.Content>
</ContentPage>

             

推荐阅读