DataGridCheckBoxColumn

DataGridCheckBoxColumn

我想将数据网格的 DataGridCheckBoxColumn 中的复选框更改为红点。所以选中的项目是红点,而未选中的项目是空的。如何更改 DataGridCheckBoxColumn 内的样式?

最佳答案

试试看,它改编自 stackoverflow.com/questions/1345961/ 在之前的评论中提到的 Ansel Faillace

<DataGrid x:Name="dataGrid" Margin="10" ItemsSource="{Binding}">
    <DataGrid.Resources>
        <Style x:Key="GreenRedCheckBox" TargetType="{x:Type Checkbox}">
            <Setter Property="HorizontalAlignment" Value="Center />
            <Setter Property="VerticalAlignment" Value="Top" />
            <Setter Property="Template">
                <Setter.Value>
                    <ControlTemplate TargetType="{x:Type ToggleButton}">
                        <Border x:Name="innerBorder">
                            <Ellipse x:Name="statusLight"
                                     Fill="Red"
                                     Stretch="Fill"
                                     Stroke="Black"
                                     HorizontalAlignment="Center"
                                     VerticalAlignment="Center"
                                     Height="10"
                                     Width="10" />
                        </Border>
                        <Trigger Property="IsChecked" Value="True">
                            <Setter Property="Fill" TargetName="statusLight" Value="Green" />
                        </Trigger>
                        <Trigger Property="IsChecked" Value="False">
                            <Setter Property="Fill" TargetName="statusLight" Value="Red" />
                        </Trigger>
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
        </Style>
    </DataGrid.Resources>
    <DataGrid.Columns>
        <DataGrideCheckBoxColumn ElementStyle="{StaticResource GreenRedCheckBox}"
                                 EditingElementStyle="{StaticResource GreenRedCheckBox}" />
    </DataGrid.Columns>
</DataGrid>

关于checkbox - WPF 将 DataGridCheckBoxColumn 更改为红点,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41802849/

10-11 20:25