Android Xamarin表单列表视图项选定功能
以下是从Android Xamarin表单列表视图项选定功能,android,listview,async-await,xamarin.android,xamarin.forms,Android,Listview,Async Await,Xamarin.android,Xamarin.forms,以下是从列表视图中选择项时调用的函数: 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); aw
列表视图中选择项时调用的函数:
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
。第一次单击后,单击的DisplayAlert
内部detail\u不再弹出。但是处理程序中的其他代码确实会被调用
有人知道如何解决这个问题吗?是不是我对事件处理程序不太了解?是关于wait/async的吗?DisplayAlert可能正在另一个线程上运行。尝试在设备中包装显示警报。BeginInvokeMainThread
。您可以对此做好准备。DisplayAlert可能正在另一个线程上运行。尝试在设备中包装显示警报。BeginInvokeMainThread
。您可以准备好了。请在不使用异步开启方法的情况下再次检查,并在DisplayAlert()上等待。请在不使用异步开启方法的情况下再次检查,并在DisplayAlert()上等待。使用以下代码。它会帮助你的
private void OnItemSelected(object sender, SelectedItemChangedEventArgs e)
{
if (e.SelectedItem == null)
{
return;
}
listView.SelectedItem = null;
DisplayAlert("Alert", e.SelectedItem.ToString(), "Ok");
}
使用以下代码。它会帮助你的
private void OnItemSelected(object sender, SelectedItemChangedEventArgs e)
{
if (e.SelectedItem == null)
{
return;
}
listView.SelectedItem = null;
DisplayAlert("Alert", e.SelectedItem.ToString(), "Ok");
}
您是否尝试过将itemtrapped
事件用于ListView
?如前所述,这两项活动的实施存在差异。我通常总是使用itemstapped
来监听用户点击ListView
中我希望处理的元素的事件(例如,导航到新页面编辑项目,打开删除项目的显示警报等)。是,除了将此函数附加到itemtrapped
事件之外,我尝试了相同的过程,得到了相同的结果。有什么想法吗?您是否尝试过将项目点击
事件用于列表视图
?如前所述,这两项活动的实施存在差异。我通常总是使用itemstapped
来监听用户点击ListView
中我希望处理的元素的事件(例如,导航到新页面编辑项目,打开删除项目的显示警报等)。是,除了将此函数附加到itemtrapped
事件之外,我尝试了相同的过程,得到了相同的结果。有什么想法吗?