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
The problem is in the GridView
's ItemsPanel
.
Both ItemsWrapGrid
and WrapGrid
are uniform grids. All their child elements will be sharing the same height and width. That's why even if you collapse the ItemTemplate
, the space is still reserved.
What you really need here is a WrapPanel
. WINRT doesn't have a built-in WrapPanel
but Jerry Nixon has built one and you can grab it from here.
After you updated your GridView
s ItemsPanel
, you still have one more thing to do. You need to also get the GridViewItem
that hosts your Itemtemplate
and set its Visibility
to Collapsed
.
private async void Button_Click(object sender, RoutedEventArgs e) { ds[5].IsHidden = true; await Task.Delay(1000); var gridViewItem =(GridViewItem)this.gv.ContainerFromIndex(5); gridViewItem.Visibility = Visibility.Collapsed; }
I put a little delay above to make the collapsing more obvious.