BaseOn无法正常工作

时间:2017-09-17 10:46:31

标签: wpf mahapps.metro

我正在尝试继承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}">

1 个答案:

答案 0 :(得分:3)

您必须将自定义样式设置为RowStyle的{​​{1}}属性,因为DataGrid不会查找隐式行样式。

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>