想象一下,我有一個名爲「MyCheckBoxStyle」的CheckBox自定義樣式。wpf datagridcheckboxcolumn風格
我該如何製作嵌入基於MyCheckBoxStyle的自定義DataGridCheckBoxColumn樣式的Datagrid樣式?
想象一下,我有一個名爲「MyCheckBoxStyle」的CheckBox自定義樣式。wpf datagridcheckboxcolumn風格
我該如何製作嵌入基於MyCheckBoxStyle的自定義DataGridCheckBoxColumn樣式的Datagrid樣式?
您可以使用DataGridTemplateColumn創建自定義checkboxcolumn
<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>
希望這有助於。
試試這個
<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>
您可以簡單地使用你定義的樣式與ElementStyle屬性。在資源定義
風格:
<Style x:Key="MyCheckBoxStyle" TargetType="{x:Type CheckBox}"> ... </Style>
我的DataGrid的複選框列:
<DataGridCheckBoxColumn ElementStyle="{StaticResource MyCheckBoxStyle}" Binding="{Binding someValue}" />
對我來說,沒有工作,直到我發現了以下解決方法:
<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>
難道不是沒有更直接的方式來做我想做的事,我的意思是,沒有使用DataGridTemplateColumn?因爲,在我的情況下,我真的需要使用DataGridCheckBoxColumn列類型... –
@Jodha建議的另一種方式 – maran87
經過大量的谷歌搜索這個主題後,我認爲這是不可能做我想做的,所以我接受你的答案。謝謝! –