2012-03-18 78 views
0

搜索了很多關於此問題的信息,但從未找到答案,解決了它。更改CheckboxColumn的顏色(如果選中)

從來就得到了下面的CheckboxColumn在WPF數據網格:

<DataGridCheckBoxColumn Header="Erledigt" Binding="{Binding Path=erledigt}" /> 

變量erledigt包含0或1。現在我想,如果複選框被選中,在cellbackground是綠色的。 絕望地搜索了一個經過檢查的房產。我怎樣才能管理這個?

+1

我會推薦一種布爾數據類型,而不是某種類型的數字... – 2012-03-18 18:04:54

回答

1

您可以將一個CellStyle添加到您只需使用DataTriggererledigt的列中,您不需要IsChecked屬性本身。使用ElementStyleEditingElementStyle您應該能夠在IsChecked上添加正常的Trigger,因爲樣式應該是應用CheckBoxes的樣式,但是範圍也限於CheckBoxes本身而不是單元格。


<DataGridCheckBoxColumn.CellStyle> 
    <Style TargetType="DataGridCell"> 
     <Style.Triggers> 
      <DataTrigger Binding="{Binding erledigt}" Value="1"> 
       <Setter Property="Background" Value="LightGreen"/> 
      </DataTrigger> 
     </Style.Triggers> 
    </Style> 
</DataGridCheckBoxColumn.CellStyle> 

您也可以綁定到CheckBox.IsChecked從細胞水平,這具有顏色會犯然後影響到綁定屬性更改後改變的時候了,而不是效果。爲此,請將CellStyle中的觸發器更改爲:

<DataTrigger Binding="{Binding Content.IsChecked, 
           RelativeSource={RelativeSource Self}}" 
      Value="True">