Здравствуйте! Возникла проблема. Имеется ItemsControl. На него кидается список. Шаблон списка элементов должен быть сеточкой.
Все бы нормально, но потребовалось ввести триггер и в зависимости от него не показывать некоторые элементы. Элемент становится Collapsed, но при этом ячейка в сетке, в которой стоит спрятанный элемент, не заполняется следующим элементом.
Это все логично, но как это исправить? Чтобы сетка заполнялась по типа StackPanel или WrapPanel (когда скрытый элемент реально не занимает место).
краткий код ниже
(соответсвенно класс Room имеет свойства Title и bool IsValid)
<ItemsControl ItemsSource="{Binding Path=RoomCollection}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<UniformGrid Columns="5" Rows="3"/>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<Grid>
<Grid.Style>
<Style TargetType="{x:Type Grid}">
<Style.Triggers>
<DataTrigger Binding="{Binding Path=IsValid}" Value="False">
<Setter Property="Visibility" Value="Collapsed"/>
</DataTrigger>
</Style.Triggers>
</Style>
</Grid.Style>
<TextBlock Text="{Binding Path=Title}"/>
</Grid>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>