Как применить один стиль для управления внутри шаблона другого стиля? - PullRequest
2 голосов
/ 22 декабря 2011

У меня есть стиль для управления:

<Style x:Key="base style" TargetType="{x:Type cust:SomeCustomControl}">
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="{x:Type cust:SomeCustomControl}">
                <DataGrid >
                    <!-- some content... -->
                </DataGrid >
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>

Я пытаюсь добавить другой стиль, который должен быть абсолютно таким же, как предыдущий, но с шрифтом "Bold" для первой строки в DataGrid:

<Style x:Key="bold row" TargetType="{x:Type cust:SomeCustomControl}" BasedOn="{StaticResource base style}">
??????????????
??????????????
</Style>

Но я не понимаю, как я могу изменить некоторые свойства в первом стиле, не копируя весь код «базового стиля». Я думаю, что я должен добавить что-то вроде:

<Style TargetType="{x:Type DataGridCell}">
    <Style.Triggers>
        <DataTrigger Binding="{Binding RowIndex}" Value="0">
            <Setter Property="FontWeight" Value="Bold"/>
        </DataTrigger>
    </Style.Triggers>
</Style>

Но мой стиль «жирный ряд» применим для некоторых: SomeCustomControl. Так как я могу сделать это в стиле «жирный ряд», не перезаписывая весь

<Setter Property="Template">

1 Ответ

0 голосов
/ 22 декабря 2011

Разве вы не можете просто добавить свой стиль DataGridCell к ресурсам встроенного стиля?

<Style x:Key="bold row" TargetType="{x:Type cust:SomeCustomControl}" BasedOn="{StaticResource base style}">
    <Style.Resources>
        <Style TargetType="{x:Type DataGridCell}">
            <Style.Triggers>
               <DataTrigger Binding="{Binding RowIndex}" Value="0">
                    <Setter Property="FontWeight" Value="Bold"/>
                </DataTrigger>
            </Style.Triggers>
        </Style>
    </Style.Resources>
</Style>

Он должен использовать тот же шаблон, но унаследованный будет применять триггер ко всем DataGridCell объектам

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...