У меня есть приложение Windows 8.1 с GridView
, связанное с пользовательской (сортируемой, дедуплицируемой) наблюдаемой коллекцией. В этой коллекции я делаю тяжелую фильтрацию и устанавливаю флаг IsHidden для каждого элемента.
В шаблоне данных для элемента есть условие, делающее элемент свернутым, если флаг IsHidden имеет значение true.
<Grid Width="160" Height="280" Visibility="{Binding IsHidden, Converter={StaticResource InvertedBooleanToVisibilityConverter}}">
Этот подход работает в Windows Phone 8.1 XAML, из-за чего элементы исчезают из ListView
, но он не работает в Windows 8.1 GridView
. Проблема с Windows 8.1 заключается в том, что когда я устанавливаю элемент в коллекции скрытым, id исчезает из GridView
, но оставляет пустое место, поэтому в GridView
есть пробел.
Любые идеи о том, как его решить? Может быть, такое же редактирование стиля XAML?
Вот минимальное решение для воспроизведения проблемы: https://dl.dropboxusercontent.com/u/73642/gv.zip
Я попытался привязать ширину и высоту элементов к скрытому флагу и установить его на 0, когда элемент скрыт, но это не помогло, все еще пробел в GridView
.
Обновить. Один способ обхода - это фильтрация фактической привязки, но это невозможно из-за некоторых бизнес-требований.