2011-12-22 2 views
2

У меня есть стиль управления:Как применить один стиль для управления внутри шаблона другого стиля?

<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> 

Я попытался добавить еще один стиль, который должен быть абсолютно такой же, как предыдущий, но с «Жирный» шрифт для первой строки в 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> 

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

<Setter Property="Template"> 

?

ответ

0

Не можете ли вы добавить свой стиль DataGridCell к ресурсам inheirted?

<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 объектов

+0

Это была первая вещь, которую я пытался, но он не работает, к сожалению. Я не опытный программист WPF, поэтому я считаю, что наследование стиля работает каким-то другим способом. Этот триггер полностью игнорируется. –