Приложение WPF использует ListBox для отображения сообщений трассировки различных групп.Показать/скрыть ListBox Элементы действия пользователя
<ListBox ItemsSource="{Binding ElementName=UI, Path=List}" x:Name="listBox">
<ListBox.ItemTemplate>
<DataTemplate>
<Grid Name="grid1" >
<Grid.ColumnDefinitions>
<ColumnDefinition Width="70" />
<ColumnDefinition Width="140" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.Background>
<SolidColorBrush Color="{Binding Path=Color}"/>
</Grid.Background>
<TextBlock Grid.Column="0" Text="{Binding Path=ItemId}"/>
<TextBlock Grid.Column="1" Text="{Binding Path=Timestamp}"/>
<TextBlock Grid.Column="2" Text="{Binding Path=Message}"/>
</Grid>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
Здесь приведено определение элементов в соответствующем ObservableCollection.
Теперь я хочу дать пользователю возможность выбрать одну или несколько групп, которые будут показаны или скрыты во время выполнения. Я не хочу просто удалять элементы группы из ObservableCollection, чтобы снова показать их позже.
Возможно ли это каким-то образом управлять XAML?
Edit1: Основываясь на подсказке от я Enhanced "MyModel" HiMa_D3ViL с Видимость собственности и модифицированном мой XAML в
<ListBox ItemsSource="{Binding ElementName=UI, Path=List}" x:Name="listBox">
<ListBox.ItemTemplate>
<DataTemplate>
<Grid Name="grid1" Visibility="{Binding Path=Visibility}">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="70" />
<ColumnDefinition Width="140" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.Background>
<SolidColorBrush Color="{Binding Path=Color}"/>
</Grid.Background>
<TextBlock Grid.Column="0" Text="{Binding Path=ItemId}"/>
<TextBlock Grid.Column="1" Text="{Binding Path=Timestamp}"/>
<TextBlock Grid.Column="2" Text="{Binding Path=Message}"/>
</Grid>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
Это частично работает. Значение связанной записи будет скрыто, но в ListBox останется пустое пространство. Смотрите здесь:
Попробуйте использовать CollectionViewSource, который предоставляет возможность фильтровать (через предикат) данные привязки при условии условии. – user1672994