#c# #xamarin #xamarin.forms
#c# #xamarin #xamarin.forms
Вопрос:
A ListView
в Xamarin.Forms содержит два события, которые кажутся совершенно одинаковыми: ItemTapped и ItemSelected
На самом деле нет никакой документации об этом, так в чем же разница?
Ответ №1:
ItemSelected
это состояние, а ItemTapped
событие движения. Можно использовать все представления, и, если я правильно помню, все представления могут быть выбраны (или, по крайней мере, активированы, есть небольшая разница), они не обязательно должны сочетаться, но обычно это так.
Например, у вас будет выбранное состояние элемента, которое переключается каждый раз, когда происходит событие tapped motion . Еще раз, чтобы сделать его более понятным, вы можете связать изменения выбранного состояния с тем, что вам нужно, будь то событие движения, такое как нажатие, длительное нажатие или двойное нажатие и т. Д., Или с каким-либо другим событием или логикой.
Надеюсь, это поможет и удачи!
Комментарии:
1. Как вы можете реализовать длительное нажатие в представлении списка с помощью xamarin.forms?
Ответ №2:
ItemTapped
должно происходить каждый раз, когда вы нажимаете на элемент, при ItemSelected
каждом изменении выбранного элемента.
В основном
- нажатие два раза на один и тот же элемент должно срабатывать два раза
ItemTapped
и только один разItemSelected
- нажатие два раза на разные элементы должно срабатывать
ItemTapped
два раза иItemSelected
два раза
Комментарии:
1. Странно, ItemSelected запускается дважды в первом случае для меня.
2. Реализация может меняться, конечно, с разными версиями и платформами. Я также помню, что 1.x не всегда запускает ItemTapped для Windows Phone. Вы должны вызвать ошибку в bugzilla
Ответ №3:
ItemSelected происходит первым. ItemTapped происходит вторым.
Ответ №4:
Одно важное различие, которое стоит отметить, заключается в том, как они работают, когда SelectionMode="None"
<ListView ... SelectionMode="None" />
Если установлено значение «Нет» … ItemSelect
событие не будет запущено, и SelectedItem
свойство останется null
.
Но
ItemTapped
события будут продолжать запускаться, как и ожидалось.
Ответ №5:
Я думаю, что ItemSelected — это когда вы используете DataTemplate для своих элементов.