Вопрос по обновлению состояния элементов в листах

Есть лист, в каждом айтеме которого есть иконка “добавить в закладки”. У неё два состояния - не добавлено и добавлено, - поэтому есть два элемента: иконка bookmark закрашенная и bookmark незакрашенная. В любой момент только одна из иконок может быть видимой, вторая скрыта.

По логике приложения в этом листе только один айтем может быть одновременно добавлен в закладки. Мы пытаемся реализовать такую логику:
(1) По клику на пустую иконку она становится visible: false, а закрашенная рядом с ней visible: true.
(2) У всех остальных айтемов листа пустая становится видимой, и наоборот.

Мы пытались реализовать это через InvokeTrigger, запуская для элементов листа триггер onCreate, где происходит проверка и обновление состояния. Триггер запускается, но обновления не происходит.

Также пытались запустить обновление всего листа, снова загрузив в него те же данные. Ожидали что лист перегенерирует все свои элементы, и запустятся их триггеры onCreate, но этого не происходит.

Вопрос - как правильно решается такая задача?

В модели листа есть какой-то булеан типа Bookmark, который отвечает за состояние закладки?
Первый вариант очевидно не сработает, так как у каждого элемента листа есть индекс, а без него нельзя точно определить к какому именно элементу идет обращение.
Самый простой вариант, скорее всего, запустить цикл для всех элементов листа.
В цикле проверять, равен ли текущий индекс цикла, индексу нажатого элемента. Результат соответственно является значением видимости для иконки (и результат после Not для второй иконки). Element Key иконки - это результат соединения ее основного Element Key + : + index.

Добрый день! Сделали так, как вы рекомендовали, кажется, всё заработало. Спасибо за решение

This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.