2013-07-12 3 views
1

Je dois modifier la couleur d'arrière-plan d'une cellule DataGridTemplateColumn en fonction de la vérification ou non de la CheckBox dans DataGridTemplateColumn. Il semble que cela devrait être possible dans xaml, comment puis-je y aller?WPF - Modifier l'arrière-plan des cellules DataGridTemplateColumn en fonction de la valeur CheckBox

Colonne:

<DataGridTemplateColumn Header="FSC-P" Width="SizeToHeader"> 
    <DataGridTemplateColumn.CellTemplate> 
     <DataTemplate> 
      <CheckBox IsChecked="{Binding FSCP}" 
         VerticalAlignment="Center" 
         HorizontalAlignment="Center" /> 
     </DataTemplate> 
    </DataGridTemplateColumn.CellTemplate> 
</DataGridTemplateColumn> 

Je l'ai vu post cependant, cela ne fonctionne pas pour une TemplateColumn. Toute aide serait appréciée.

+0

S'il vous plaît envisager d'utiliser 'DataTrigger'. –

Répondre

3

ci-dessous Style va changer la couleur Background du Cell si le CheckBox est vérifié:

<Style x:Key="CheckBoxCellStyle" TargetType="DataGridCell"> 
     <Setter Property="ContentTemplate"> 
      <Setter.Value> 
       <DataTemplate> 
        <CheckBox x:Name="cb" 
           IsChecked="{Binding FSCP, UpdateSourceTrigger=PropertyChanged}" 
           VerticalAlignment="Center" 
           HorizontalAlignment="Center" /> 
       </DataTemplate> 
      </Setter.Value> 
     </Setter> 
     <Style.Triggers> 
      <DataTrigger Binding="{Binding FSCP, UpdateSourceTrigger=PropertyChanged}" Value="True"> 
       <Setter Property="Background" Value="Blue"/> 
      </DataTrigger> 
     </Style.Triggers> 
    </Style> 

<DataGridTemplateColumn Header="FSC-P" Width="SizeToHeader" CellStyle="{StaticResource CheckBoxCellStyle}"/> 
+0

Merci Richard E, cela a fonctionné. En attendant, j'ai trouvé ceci: http://asimsajjad.blogspot.com/2010/09/changing-background-color-of-datagrid.html, ce qui est essentiellement la même chose sans le UpdateSourceTrigger. Merci encore – user1017477

Questions connexes