2013-07-12 4 views
1

Мне нужно изменить цвет фона ячейки DataGridTemplateColumn на основе проверки флажка CheckBox внутри DataGridTemplateColumn. Кажется, что это возможно в рамках xaml, как я могу это сделать?WPF - изменить элемент данных DataGridTemplateColumn на основе значения CheckBox

Колонка:

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

Я видел этот post однако, это не работает для TemplateColumn. Любая помощь будет оценена по достоинству.

+0

Пожалуйста, обратите внимание, используя 'DataTrigger'. –

ответ

3

Следующая Style изменит Background цвет Cell если CheckBox проверяется:

<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

Спасибо, Ричард, это сработало. Тем временем я нашел это: http://asimsajjad.blogspot.com/2010/09/changing-background-color-of-datagrid.html, что по сути то же самое минус UpdateSourceTrigger. еще раз спасибо – user1017477

Смежные вопросы