У меня проблема с моим ListView. Я привязываю ItemsSource к моему ViewModel, но хочу, чтобы объекты, у которых определенное свойство установлено равным null, были полностью свернуты (как и во всем элементе, свернуто, а не только элемент управления, который привязан к свойству, которое может быть null). У меня есть конвертер, который работает, но ListView по-прежнему, по-видимому, резервирует по крайней мере некоторое пространство для элементов, которые рухнули. Это приводит к тому, что мой ListView имеет уродливые «дыры». (Обратите внимание, что отверстия не занимают столько места, сколько видимых предметов, но они занимают некоторое пространство, а «невидимые» предметы даже можно щелкнуть ...)Не показывать элементы с видимостью = Свернуто в Windows Phone 8.1 ListView
Моя проблема почти такая же, как у один из приведенных здесь: Not showing items with Visibility=Collapsed in Windows 8.1 GridView
Единственное, что меня беспокоит, это то, что OP связанного вопроса говорит, что для него он отлично работает в Windows Phone, но не в Windows. Ну, для меня это не работает в Windows Phone. Какие-нибудь предложения, что я мог сделать?
Кодекс:
<DataTemplate x:Key="UpcomingEpisodesTemplate">
<Grid Visibility="{Binding Upcoming, Converter={StaticResource EpisodeVisibilityConverter}}">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="110"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
....The rest of the template which is not important...
</Grid>
</DataTemplate>
Спасибо!
Какой аккуратный маленький трюк, не думал об этом ... Спасибо большое! Единственная проблема, с которой я сталкиваюсь с этим решением/обходным решением, заключается в том, что конвертер не будет вызываться, если фактический ObservableCollection (связанный с ListView) будет каким-либо образом изменен (т. Е. Элемент добавлен/удален и т. Д.). Я написал метод, который устанавливает ItemSource в значение null, а затем в ObservableCollection, чтобы принудительно вызвать конвертер. – Neuromancer
Нравится программа? Поделись с друзьями! Любая идея, как я могу достичь такого же поведения, но в «чистом» виде? – Neuromancer
Ну, вы можете вернуть новый ObservableCollection в конвертер и посмотреть оригинальную коллекцию (хранящуюся в «value») для изменений в CollectionChanged и обновить возвращенную коллекцию. –