【发布时间】:2021-05-12 20:52:19
【问题描述】:
我创建了一个具有自定义 ViewCell 的 ListView,如下所示:
<ListView x:Name="ListView1" ItemTapped="ListView1_ItemTapped"
SeparatorVisibility="None" RowHeight="192" HasUnevenRows="False"
FlowDirection="RightToLeft" CachingStrategy="RecycleElement" >
<ListView.ItemTemplate>
<DataTemplate>
<custom:ViewCell1 />
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
这是自定义 ViewCell 的 XAML
<ViewCell.View>
<StackLayout>
<Label Text="{Binding Name}" />
<Label Text="{Binding ID}" />
<Button x:Name="Button1" Text="Get index" Clicked="Button1_Clicked" />
</StackLayout>
</ViewCell.View>
我需要的只是当我点击 Button1 时,我会得到 ListView1 项目索引(或 ViewCell 索引)
问题是我无法从自定义 ViewCell 后面的代码中的 Button1_Clicked 事件访问 ListView1 并获取 ListView1 的点击项索引(甚至获取 ViewCell 的点击项索引)。
查了很多,发现可以通过3种方式完成:
1- 为 ViewCell 创建一个附加属性以获取其索引。
2- 使用 ViewCell 的索引器并获取它的索引。
3- 使用 question 中提到的 ITemplatedItemsView 接口
但不幸的是,我无法从后面的自定义 ViewCell 代码中的 Button1_Clicked 事件中实现它们中的任何一个,因为我不是 MVVM 或 C# 方面的专家。
请给我专家帮助。
谢谢
【问题讨论】:
标签: c# forms listview xamarin indexing