【问题标题】:How to get the data of the ListView cell being tapped如何获取被点击的ListView单元格的数据
【发布时间】:2017-05-23 08:21:26
【问题描述】:

我们的 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>

【问题讨论】:

    标签: android xaml xamarin xamarin.forms portable-class-library


    【解决方案1】:

    还要加上(ListView)sender).SelectedItem = null,因为如果你再次点击同一个项目将不起作用。所以你需要清除选中的项目。

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

    【讨论】:

      【解决方案2】:

      你必须投射它

      类似

      ((Debtor)e.SelectedItem).debtor_name;
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-12-09
        • 2019-12-31
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多