xamarin.forms - 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] 列表)。再次将单元格的绑定上下文设置为视图模型是一个坏主意吗?
解决方案
你可以试试这个
<ContentPage ...
x:Name="PageName">
<ContentPage.Content>
...
<StackLayout.GestureRecognizers>
<TapGestureRecognizer Command="{Binding Path=BindingContext.TapCommand,
Source={x:Reference PageName}}"/>
</StackLayout.GestureRecognizers>
...
</ContentPage.Content>
</ContentPage>
推荐阅读
- azure - 如何在嵌套模板资源中使用 copyIndex?
- scala - 无法在 Akka Stream 中使用 GraphStage 类运行 SourceShape
- node.js - sessionStorage 中的 Jwt 验证在后端做出反应
- mysql - 无法进行合适的查询
- sql-server - 即使未执行该过程,列也不存在
- python - 如果用户输入 x 它会停止,我该怎么写
- ios - 转换为 HLS 时,Swift ReplayKit AVAssetWriter 视频音频不同步
- javascript - 使用 D3 创建动画脉冲圆
- time-complexity - 下面函数的时间复杂度是多少?
- uistoryboard - 如何将 @IBSegueAction 与 UITabBarController 一起使用?