「MyCheckBoxStyle」という名前のCheckBoxカスタムスタイルがあるとします。
MyCheckBoxStyleに基づいてカスタムDataGridCheckBoxColumnスタイルを埋め込むDatagridスタイルを作成するにはどうすればよいですか?
「MyCheckBoxStyle」という名前のCheckBoxカスタムスタイルがあるとします。
MyCheckBoxStyleに基づいてカスタムDataGridCheckBoxColumnスタイルを埋め込むDatagridスタイルを作成するにはどうすればよいですか?
ElementStyle属性で定義されたスタイルを簡単に使用できます。
リソースで定義されているスタイル:
<Style x:Key="MyCheckBoxStyle" TargetType="{x:Type CheckBox}"> ... </Style>
そして私のデータグリッドチェックボックス列:
<DataGridCheckBoxColumn ElementStyle="{StaticResource MyCheckBoxStyle}" Binding="{Binding someValue}" />
これを試して
<DataGridCheckBoxColumn MinWidth="100"
Binding="{Binding Path=BoolValue}"
Header="Bool Column"
IsThreeState="True">
<DataGridCheckBoxColumn.ElementStyle>
<Style TargetType="CheckBox">
<Setter Property="Background" Value="{Binding BoolValueColour, Converter={StaticResource MyConverter}}" />
</Style>
</DataGridCheckBoxColumn.ElementStyle>
</DataGridCheckBoxColumn>
DataGridTemplateColumnを使用して、カスタムのチェックボックス列を作成できます
<Custom:DataGridTemplateColumn x:Name="gdchk" Header="Test" MaxWidth="50">
<Custom:DataGridTemplateColumn.CellTemplate >
<DataTemplate>
<CheckBox IsChecked="{Binding Path = classname}" HorizontalAlignment="Center" Style="{DynamicResource myCheckBoxStyle}"/>
</DataTemplate>
</Custom:DataGridTemplateColumn.CellTemplate>
</Custom:DataGridTemplateColumn>
お役に立てれば。
私にとっては、次の回避策が見つかるまで機能しませんでした。
<DataGridTemplateColumn
Header="Skip" Width="18"
IsReadOnly="False" CanUserResize="False">
<DataGridTemplateColumn.CellTemplate >
<DataTemplate DataType="gfxModule:BatchPairItemModel">
<CheckBox
Tag="{Binding}"
IsChecked="{Binding Tag.Skip, Mode=TwoWay,
RelativeSource={RelativeSource Self}}"
Template="{DynamicResource CheckBoxCircleXTemplate}"
ToolTip="Skip"
/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>