1

我有一个 WPF DataGrid,我在其中手动定义我的列。根据我的 ViewModel 中的属性,我想使用 DataTrigger 显示/隐藏 DataGridComboboxColumn。

不幸的是 DataGridColumn 和 DataGridComboBoxColumn 没有我可以使用的 Style 属性。有没有办法通过使用 DataTrigger 来实现显示/隐藏功能,或者我是否只能将绑定直接设置为 DataGridComboBoxColumn 的 Visibility 属性?

4

1 回答 1

0

您可以通过定义单元格模板来使用数据触发器,而不是通过属性隐藏它。我们可以在数据模板中添加数据触发器。

    <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>

在这里,使用数据触发器显示隐藏项目(图像)的数据网格。尝试相同的方法隐藏单元格模板中的组合框。希望它有效。

于 2016-03-30T12:19:49.420 回答