Я работаю над страницей .NET MAUI с CollectionView, привязанным к списку элементов. Каждый элемент в коллекции имеет кнопку, определенную в DataTemplate, и я использую TouchBehavior из набора инструментов сообщества .NET MAUI для привязки Command и CommandParameter для событий щелчка.
Вот фрагмент кода, демонстрирующий проблему:
CommandParameter привязан к текущему элементу в CollectionView. Когда я обновляю данные (например, перезагружаю связанный список) и нажимаю кнопку, CommandParameter отображает неправильный идентификатор — он отличается от ожидаемого идентификатора элемента в обновленном списке, хотя порядок списка и позиции элементов остаются прежними.
Как ни странно, если я использую стандартную команду для кнопки (как показано ниже), проблема не возникает, и правильный CommandParameter передается даже после обновления данных:
Вопрос: Почему CommandParameter TouchBehavior не отражает правильный элемент после обновления данных в CollectionView? Я хочу определить, нажата ли кнопка коротким или долгим нажатием, что невозможно при использовании кнопки по умолчанию. Есть ли обходной путь, позволяющий гарантировать, что после обновления данных передается правильный идентификатор элемента, при этом распознавая короткие и длинные нажатия?
Подробнее здесь:
https://stackoverflow.com/questions/791 ... th-binding