如何获取被点击的ListView单元格的数据

How to get the data of the ListView cell being tapped

我们的 itemSource 来自 json 数据,我们对其进行反序列化,以便将其放入 Xaml 列表视图中,但我无法获取被点击的单元格的值。

这是我的.cs

List<Debtor> ro = JsonConvert.DeserializeObject<List<Debtor>>(filteredResult2);
//UPDATE LISTVIEW
CustListView.ItemsSource = ro;

CustListView.ItemSelected += async (sender, e) =>
       {
           await DisplayAlert("Selected", e.SelectedItem.ToString() + " was selected.", "OK");
           // await Navigation.PushAsync(new SalesHeaderPage());
       };

这是我的。xaml

 <ListView x:Name="CustListView">
 <ListView.ItemTemplate>
   <DataTemplate>
     <ViewCell >
       <StackLayout Orientation="Vertical" Padding="8,0,8,0">
         <Label Text="{Binding debtor_name}" TextColor="#000" FontSize="14" LineBreakMode="TailTruncation" />

       </StackLayout>
     </ViewCell>
   </DataTemplate>
 </ListView.ItemTemplate>

你必须施放它

类似

((Debtor)e.SelectedItem).debtor_name;

同时添加 (ListView)sender).SelectedItem = null,因为如果您再次点击相同的项目,它不会 work.So 您需要清除所选项目。

if (e.SelectedItem == null) return; var tappedItem = (Debtor)e.SelectedItem; ((ListView)sender).SelectedItem = null;