C# 如何隐藏完整的DataGrid行?
我有一个DataGrid,从中添加和删除项目。这是我目前拥有的代码:C# 如何隐藏完整的DataGrid行?,c#,wpf,visual-studio,xaml,datagrid,C#,Wpf,Visual Studio,Xaml,Datagrid,我有一个DataGrid,从中添加和删除项目。这是我目前拥有的代码: <DataGrid x:Name="ItemsToDo"> <DataGrid.Columns> <DataGridTemplateColumn Header="Info> <DataGridTemplateColumn.CellTemplate> <Data
<DataGrid x:Name="ItemsToDo">
<DataGrid.Columns>
<DataGridTemplateColumn Header="Info>
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<DataTemplate.Triggers>
<DataTrigger Binding="{Binding IsDone}" Value="True">
<Setter Property="Visibility" Value="Collapsed"/>
</DataTrigger>
</DataTemplate.Triggers>
<TextBlock Text="{Binding Description}"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTemplateColumn Header="Deadline">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<DataTemplate.Triggers>
<DataTrigger Binding="{Binding IsDone}" Value="True">
<Setter Property="Visibility" Value="Collapsed"/>
</DataTrigger>
</DataTemplate.Triggers>
<TextBlock Text="{Binding InputDeadline}"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
您应该从单元格模板中删除DataTrigger
s,并对整行而不是单个单元格应用可见性触发器
例如:
<DataGrid ItemsSource="{Binding Items}" AutoGenerateColumns="False">
<DataGrid.RowStyle>
<Style TargetType="DataGridRow">
<Style.Triggers>
<DataTrigger Binding="{Binding IsDone}" Value="True">
<Setter Property="Visibility" Value="Collapsed"/>
</DataTrigger>
</Style.Triggers>
</Style>
</DataGrid.RowStyle>
<DataGrid.Columns>
<DataGridTemplateColumn Header="Info">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding Description}"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTemplateColumn Header="Deadline">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding InputDeadline}"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>