I have a Windows 8.1 application with a GridView
bound to a custom (sortable, deduplicated) observable collection. In this collection, I do some heavy filtering and setting an IsHidden flag for every item.
In the data template for the item, there is a condition making the item collapsed if IsHidden flag is set to true.
<Grid Width="160" Height="280" Visibility="{Binding IsHidden, Converter={StaticResource InvertedBooleanToVisibilityConverter}}">
This approach works in Windows Phone 8.1 XAML, making the items disappear from the ListView
but it does not work in Windows 8.1 GridView
. The problem with Windows 8.1 is that when I set an item in the collection to hidden, id disappears from the GridView
but leaves an empty place, so there is a gap in the GridView
.
Any ideas on how to solve it? Maybe same XAML style editing?
Here is a minimal solution to reproduce the problem: https://dl.dropboxusercontent.com/u/73642/gv.zip
I tried binding width and height of the items to the hidden flag and setting it to 0 when the item is hidden, but it did not help, still a gap in the GridView
.
Update: One workaround would be filtering the actual bound collection, but this is not possible, because of some business requirements.