Я пишу приложение с использованием Xamarin Forms XAML, и мне нужен способ перерисовать представление.
У меня есть макет, содержащий несколько меток и ListView. У меня также есть кнопка, которая при нажатии вызывает API для загрузки нового набора данных, который должен обновить элементы управления на странице.
Все мои элементы управления связаны правильно, поэтому, когда данные обновляются в фоновом режиме, данные обновляются в представлении, но элементы управления не перерисовываются и поэтому портят внешний вид макета.
Иногда данные в моем ListView могут содержать только 1 или 2 строки, но обычно их будет намного больше. В первый раз, когда страница прорисована, все выглядит нормально, но моя проблема в том, чтобы обновить представление данными, имеющими различное количество строк в ListView, поскольку элементы управления не изменяют размер.
Пример:
При первом входе в экран я загружаю данные, и ListView имеет 10 элементов и поэтому рисует 10 строк на экране
Когда я нажимаю кнопку «Обновить данные», загруженные данные могут теперь содержать только 2 элемента. Данные обновляются корректно, но интервал на экране остается того же размера, что и при первом рисовании (с 10 элементами), поэтому у меня теперь большое пустое пространство.
Если сделано противоположное этому примеру (1-я запись - 2 элемента, 2-я запись - 10 элементов), то пространство для ListView по-прежнему будет всего 2 элемента в высоту, и поэтому вы можете видеть только 2 из 10 элементов.
Что я хочу сделать, так это каким-то образом обновить элементы управления при загрузке новых данных, чтобы размер ListView перерисовывался и всегда соответствовал размеру отображаемых элементов.