2016-03-08 32 views
0

我有一個WPF DataGrid,我在其中手動定義了我的列。根據我的ViewModel中的屬性,我想通過使用DataTrigger來顯示/隱藏DataGridComboboxColumn。如何使用DataTrigger隱藏DataGridColumn?

不幸的是,DataGridColumn和DataGridComboBoxColumn沒有可用於此的Style屬性。有沒有什麼辦法通過使用DataTrigger來實現顯示/隱藏功能,還是我只能直接綁定到DataGridComboBoxColumn的Visibility屬性?

+0

查看是否[this](http://stackoverflow.com/questions/20475212/wpf-datatrigger-to-display-and-hide-grid-column-xaml)是你想要的 – Pikoh

回答

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> 

在這裏,顯示用於通過使用數據觸發器隱藏項目(圖像)的datagrid。 試着隱藏單元格模板中的組合框。 希望它有效。