选择项目时,xamarinForms ListView ItemTapped和ItemSelected同时运行
我有一个列表视图,其中包含两个事件ItemTapped和ItemSelected,当用户选择该项目时,您选择的项目应显示警报,当用户点击该项目时,您点击的项目应显示警报。 但是,当用户选择一个项目时,首先会显示您点击的项目的警报,然后会显示您所选项目的警报。为什么会发生这种情况 这是我的Xaml文件 当您点击一个项目时,会触发ItemTapped事件 ItemSelected事件在您选择项目时触发。点击当前未选择的项目时,您可以选择一个项目 在这种情况下,如果您正在点击未选中的项目,则ItemTapped和ItemSelected事件都将被激发。点击项目时,ItemTapped事件将被激发 ItemSelected事件在您选择项目时触发。点击当前未选择的项目时,您可以选择一个项目选择项目时,xamarinForms ListView ItemTapped和ItemSelected同时运行,listview,xamarin.forms,xamarin.forms.listview,Listview,Xamarin.forms,Xamarin.forms.listview,我有一个列表视图,其中包含两个事件ItemTapped和ItemSelected,当用户选择该项目时,您选择的项目应显示警报,当用户点击该项目时,您点击的项目应显示警报。 但是,当用户选择一个项目时,首先会显示您点击的项目的警报,然后会显示您所选项目的警报。为什么会发生这种情况 这是我的Xaml文件 当您点击一个项目时,会触发ItemTapped事件 ItemSelected事件在您选择项目时触发。点击当前未选择的项目时,您可以选择一个项目 在这种情况下,如果您正在点击未选中的项目,则Item
在这种情况下,如果您正在点击未选中的项目,则ItemTapped和ItemSelected事件都将被触发。一种解决方法可以管理这两个事件,如, 您可以在双击列表项时调用Listview ItemTapped事件。 &默认情况下,Listview单次点击可获取ItemSelected事件
注意:这是同时管理两个事件的唯一解决方法。一个解决方法可以管理两个事件,如, 您可以在双击列表项时调用Listview ItemTapped事件。 &默认情况下,Listview单次点击可获取ItemSelected事件
注意:这是同时管理这两个事件的唯一解决方法。另一个简单的解决方法是计算触发触发的事件的次数。正如我所意识到的,抽头事件总是在所选事件之前触发,所以只需定义一个整数,在每个抽头事件中增加它,并在所选事件中重置
private int _myListTapNumber = 0;
...
private void MyList_ItemTapped(object sender, ItemTappedEventArgs e)
{
if (_myListTapNumber > 1)
{
DisplayAlert("Tapped", "Tap event fired.", "OK");
}
_myListTapNumber++;
}
private void MyList_ItemSelected(object sender, SelectedItemChangedEventArgs e)
{
_myListTapNumber = 1;
DisplayAlert("Selected", "Selected event fired.", "OK");
}
另一个简单的解决方法是计算触发抽头事件的次数。正如我所意识到的,抽头事件总是在所选事件之前触发,所以只需定义一个整数,在每个抽头事件中增加它,并在所选事件中重置
private int _myListTapNumber = 0;
...
private void MyList_ItemTapped(object sender, ItemTappedEventArgs e)
{
if (_myListTapNumber > 1)
{
DisplayAlert("Tapped", "Tap event fired.", "OK");
}
_myListTapNumber++;
}
private void MyList_ItemSelected(object sender, SelectedItemChangedEventArgs e)
{
_myListTapNumber = 1;
DisplayAlert("Selected", "Selected event fired.", "OK");
}
从哪个版本开始出现这种情况?从哪个版本开始出现这种情况?欢迎使用堆栈溢出。请注意,最好解释答案,而不是仅仅发布代码片段欢迎使用堆栈溢出。请注意,解释答案总是比张贴代码片段更好