2012-03-18 28 views
0

この問題について多くのことを検索しましたが、答えが見つからず、解決しました。CheckboxColumnの色を変更した場合、変更します。

I'veは、WPFのデータグリッドで、次のCheckboxColumnを得た:

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

を変数erledigtは、チェックボックスがチェックされている場合、cellbackgroundが緑色であることを、私が欲しい今、0または1が含まれています。 Hopelessly checkedプロパティが検索されました。これをどうすれば管理できますか?

+1

何らかの番号の代わりにブール型のデータ型をお勧めします。 –

答えて

1

DataTriggererledigtに設定した列にCellStyleを追加すると、IsCheckedプロパティは不要です。 ElementStyleEditingElementStyleを使用すると、CheckBoxesにスタイルを適用する必要がありますが、範囲はCheckBoxesに限定され、セルではなく、IsCheckedに通常のTriggerを追加することができます。


<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"> 
関連する問題