У меня есть приложение Windows 8.1 с GridView
, связанное с пользовательской (сортируемой, дедуплицируемой) наблюдаемой коллекцией. В этой коллекции я делаю тяжелую фильтрацию и устанавливаю флаг IsHidden для каждого элемента.Не показывать элементы с видимостью = Свернуто в Windows 8.1 GridView
В шаблоне данных для элемента есть условие, делающее элемент свернутым, если установлен флаг 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 заключается в том, что когда я устанавливаю элемент в коллекции для скрытия, идентификатор исчезает с GridView
, но оставляет пустое место, поэтому в GridView
есть пробел.
Любые идеи о том, как решить эту проблему? Может быть, такое же редактирование стиля XAML?
Здесь минимальное решение для воспроизведения проблемы: https://dl.dropboxusercontent.com/u/73642/gv.zip
Я попытался связывание ширины и высоты элементов для скрытого флага и установить его в 0, когда элемент скрыт, но это не помогло, до сих пор зазор в GridView
.
Обновление: Обходное решение будет фильтровать фактическую привязку коллекции, но это невозможно, из-за некоторых бизнес-требований.
Вы уверены, что это 'Visibility.Collapsed'? Потому что он выглядит как «Visibility.Hidden» (и вы точно знаете [разницу] (http://stackoverflow.com/q/886742/1997232)). – Sinatr
Да, я уверен, нет видимости. Скрыто в winrt –
Что вы используете в качестве своей GridView.ItemsPanel? –