c# wpf создание - Как создать стиль на основе стиля DataGrid по умолчанию?




1 Answers

Если вы создаете стиль со свойством TargetType и основываете его на другом стиле, который также определяет свойство TargetType, целевой тип производного стиля должен совпадать или быть производным от типа базового стиля.

Ваша сетка наследуется от DataGrid, верно?

style textblock xaml

У меня есть пользовательский элемент управления, который расширяет DataGrid . Это называется ExtendedDataGrid . Я хочу предоставить стиль для ExtendedDataGrid который совпадает со стилем DataGrid за исключением того, что он изменяет шаблон. Я пробовал что-то вроде этого:

<Style TargetType="{x:Type MyControls:ExtendedDataGrid}" BasedOn="{StaticResource {x:Type DataGrid}}">
    <Setter Property="Template">
    ...
    </Setter>
</Style>

Но это говорит о том, что ресурс не найден.

Итак, я стараюсь:

<Style TargetType="{x:Type MyControls:ExtendedDataGrid}" BasedOn="{StaticResource {ComponentResourceKey ResourceId=DataGridStyle, TypeInTargetAssembly={x:Type DataGrid}}}">
    <Setter Property="Template">
    ...
    </Setter>
</Style>

Но это тоже не работает ... Так что мне делать?




Related