ElementStyle
とEditingElementStyle
プロパティを使用して、それに合うを作成して設定します。
<DataGridCheckBoxColumn Binding="{Binding IsActive}">
<DataGridCheckBoxColumn.ElementStyle>
<Style TargetType="{x:Type CheckBox}">
<Setter Property="IsEnabled" Value="False" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type CheckBox}">
<Image MaxWidth="32" MaxHeight="32">
<Image.Style>
<Style TargetType="{x:Type Image}">
<Setter Property="Source" Value="Images/Error.ico" />
<Style.Triggers>
<DataTrigger Binding="{Binding IsChecked, RelativeSource={RelativeSource AncestorType=CheckBox}}" Value="True">
<Setter Property="Source" Value="Images/Default.ico" />
</DataTrigger>
</Style.Triggers>
</Style>
</Image.Style>
</Image>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</DataGridCheckBoxColumn.ElementStyle>
</DataGridCheckBoxColumn>
これは、列がIsChecked
に基づいて画像を表示させ、URIは単にハードコードされているとElementStyleでの編集がバインドされたオブジェクト上の任意のプロパティを変更しないので、チェックボックスは無効になっています。その唯一の目的は、適切なイメージを表示することです。
(EditingElementStyle
は、ユーザーがセルをクリックした場合、通常のチェックボックスをオンまたはオフすることのできる表示され、再びそれを編集するので、ここで設定されていません。)を
をするだけという追加するようであればEditingElementStyleでチェックボックスを非表示にしたい場合、これは上記のコードと同じです。 –
flux