BaseOn 无法正常工作

BaseOn not working properly

我正在尝试继承 Datagrid 的 Mahapp 样式,我为 Datagrid 的行创建了这样的样式:

<UserControl.Resources>       
    <Style x:Key="DataGridRow">
        <Style.Resources>
            <Style TargetType="DataGridRow" BasedOn="{StaticResource MetroDataGridRow}">
                <Style.Triggers>
                    <DataTrigger Binding="{Binding Selected}" Value="True">
                        <Setter Property="Background" Value="LightGray"></Setter>
                    </DataTrigger>
                </Style.Triggers>
            </Style>
        </Style.Resources>
    </Style>
</UserControl.Resources>

不幸的是,当我在 Datagrid 上应用这种样式时,我得到的是 wpf 的默认样式,而不是 mahapp,我做错了什么?谢谢

 <DataGrid AutoGenerateColumns="False" CanUserAddRows="false" Style="{StaticResource DataGridRow}">

您必须将自定义样式设置为 DataGridRowStyle 属性,因为 DataGrid 不查找隐式行样式。

<UserControl.Resources>
    <Style x:Key="CustomRowStyle" BasedOn="{StaticResource MetroDataGridRow}" TargetType="{x:Type DataGridRow}">
        <Style.Triggers>
            <DataTrigger Binding="{Binding Selected}" Value="True">
                <Setter Property="Background" Value="LightGray" />
            </DataTrigger>
        </Style.Triggers>
    </Style>
</UserControl.Resources>

用法:

<DataGrid RowStyle="{StaticResource CustomRowStyle}" />