2013-04-08 7 views
1

Я пытаюсь связать RibbonGroup и пару RibbonButtons на мой ViewModel со следующим XAML:ItemContainerStyle для RibbonGroup

<Style TargetType="{x:Type ribbon:RibbonGroup}" x:Key="RibbonGroupStyle"> 
    <Setter Property="Header" Value="{Binding Header}" /> 
    <Setter Property="ItemContainerStyle" Value="{DynamicResource RibbonButtonStyle}" /> 
    <Setter Property="ItemsSource" Value="{Binding Buttons}" /> 
</Style> 

<Style TargetType="{x:Type ribbon:RibbonButton}" x:Key="RibbonButtonStyle"> 
    <Setter Property="Label" Value="{Binding Header}" /> 
</Style> 

Это дает мне следующую ошибку, которую я могу понять, но как я правильно привязать ярлык RibbonButton к моей модели просмотра?

A style intended for type 'RibbonButton' cannot be applied to type 'RibbonControl'. 

ответ

0

Вы можете разместить один стиль внутри другого и применить его к каждой кнопке:

<Style TargetType="{x:Type ribbon:RibbonGroup}" x:Key="RibbonGroupStyle"> 
    <Style.Resources> 
     <Style TargetType="{x:Type ribbon:RibbonButton}" BasedOn="{StaticResource {x:Type ribbon:RibbonButton}"> 
      <Setter Property="Label" Value="{Binding Header}" /> 
     </Style> 
    </Style.Resources> 

    <Setter Property="Header" Value="{Binding Header}" /> 
    <Setter Property="ItemsSource" Value="{Binding Buttons}" /> 
</Style> 
+0

Ok, но что лучшим способом будет применить его к каждой кнопке? – Chrille

+0

Если вы не укажете стиль, тогда он должен применяться ко всем элементам управления этого типа. – icebat

+0

Итак, я понял, что проблема в том, что когда я привязываю свой список объектов модели кнопки ленты к элементу ItemsSource моей RibbonGroup, они создаются как RibbonControls, а не RibbonButtons, как мне это контролировать? Я думаю, что у меня отсутствует что-то фундаментальное в моей привязке. – Chrille

Смежные вопросы