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 に答える