我有一个 WPF DataGrid,我在其中手动定义我的列。根据我的 ViewModel 中的属性,我想使用 DataTrigger 显示/隐藏 DataGridComboboxColumn。
不幸的是 DataGridColumn 和 DataGridComboBoxColumn 没有我可以使用的 Style 属性。有没有办法通过使用 DataTrigger 来实现显示/隐藏功能,或者我是否只能将绑定直接设置为 DataGridComboBoxColumn 的 Visibility 属性?
我有一个 WPF DataGrid,我在其中手动定义我的列。根据我的 ViewModel 中的属性,我想使用 DataTrigger 显示/隐藏 DataGridComboboxColumn。
不幸的是 DataGridColumn 和 DataGridComboBoxColumn 没有我可以使用的 Style 属性。有没有办法通过使用 DataTrigger 来实现显示/隐藏功能,或者我是否只能将绑定直接设置为 DataGridComboBoxColumn 的 Visibility 属性?
您可以通过定义单元格模板来使用数据触发器,而不是通过属性隐藏它。我们可以在数据模板中添加数据触发器。
<DataGridTemplateColumn Width="auto" CellStyle="{StaticResource CenterCellStyle}" >
<DataGridTemplateColumn.Header>
<Label Content="Header 1 " Foreground="White" />
</DataGridTemplateColumn.Header>
<DataGridTemplateColumn.CellTemplate >
<DataTemplate >
<StackPanel Orientation="Horizontal" Margin="4,0,0,0">
<Image Margin="2">
<Image.Resources>
<Style TargetType="{x:Type Image}">
<Style.Triggers>
<DataTrigger Binding="{Binding ANSWER}" Value="Yes">
<Setter Property="Visibility" Value="Visible" />
</DataTrigger>
<DataTrigger Binding="{Binding ANSWER}" Value="No">
<Setter Property="Visibility" Value="Collapsed" />
</DataTrigger>
</Style.Triggers>
</Style>
</Image.Resources>
</Image>
</StackPanel>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
在这里,使用数据触发器显示隐藏项目(图像)的数据网格。尝试相同的方法隐藏单元格模板中的组合框。希望它有效。