[英]Xamarin Forms ListView ItemSelected functionality
這是一個從ListView
選擇項目時調用的函數:
async void detail_clicked(object sender, SelectedItemChangedEventArgs e){
if (e.SelectedItem == null) {
return;
}
Detail selected = (Detail)e.SelectedItem;
order_vm.List_of_details.Add(selected);
await DisplayAlert ("Item Added",
String.Format ("{0} added to cart.", selected.detail_name), "Okay");
((ListView)sender).SelectedItem = null;
}
我使用ItemSelected
事件處理程序添加了此功能
details_list.ItemSelected += detail_clicked;
第一次單擊項目時,將彈出DisplayAlert
。 第一次單擊后,不再彈出detail_clicked
內部的DisplayAlert
。 但是處理程序中的其他代碼確實會被調用。
有人知道如何解決此問題嗎? 我對事件處理程序不了解嗎? 關於等待/異步嗎?
DisplayAlert可能正在其他線程上運行。 嘗試將Display Alert包裝在Device.BeginInvokeOnMainThread
。 您可以在這里做好准備。
請再次檢查方法是否異步,然后在DisplayAlert()上等待。
使用以下代碼。 它將為您提供幫助。
private void OnItemSelected(object sender, SelectedItemChangedEventArgs e)
{
if (e.SelectedItem == null)
{
return;
}
listView.SelectedItem = null;
DisplayAlert("Alert", e.SelectedItem.ToString(), "Ok");
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.