2010-11-06 2 views
0

Я сделал несколько HeaderTemplate для Combobox.GroupStyle, чтобы отображать элементы в группах. И знаю, что мне нужно выполнить некоторые операции с Combobox, когда пользователь нажимает на GroupHeader. Я попытался написать триггер в моей HedaerTemplate для Combobox.GroupStyle, но он не работает. Ниже приведен полный код выписки:Доступ к свойствам Combobox из его GroupStyle.HeaderTemplate

<ComboBox x:Name="comboBox" DisplayMemberPath="Type" 
       HorizontalAlignment="Center" VerticalAlignment="Top" 
       Margin="5" MinWidth="100"> 
     <ComboBox.GroupStyle> 
      <GroupStyle> 
       <GroupStyle.HeaderTemplate> 
        <DataTemplate> 
         <TextBlock Text="{Binding Path=Name}" 
            FontWeight="Bold" 
            Margin="0,5,0,0" 
            Padding="3" Background="LightGreen" MouseDown="TextBlock_MouseDown"> 
         </TextBlock> 
         <DataTemplate.Triggers> 
          <EventTrigger RoutedEvent="TextBlock.MouseDown"> 
           <EventTrigger.Actions> 
            <BeginStoryboard> 
             <Storyboard> 
              <DoubleAnimation Storyboard.Target="{Binding RelativeSource ={RelativeSource TemplatedParent}}" 
                  From="0" Storyboard.TargetProperty="Width" 
                   To="300" Duration="0:0:5"/> 
             </Storyboard> 
            </BeginStoryboard> 
           </EventTrigger.Actions> 
          </EventTrigger> 
         </DataTemplate.Triggers> 
        </DataTemplate> 

       </GroupStyle.HeaderTemplate> 
      </GroupStyle> 
     </ComboBox.GroupStyle> 
    </ComboBox> 

Я взял свойство «Ширина» только для примера. Но это не сработало. Анимация расширяет GroupHeader, а не весь ComboBox.

ответ

0

Ваш TemplateBinding привязывается к элементу, к которому применяется шаблон, т. Е. Заголовок. Возможно, вам необходимо установить привязку как

{Binding RelativeSource={RelativeSource FindAncestor, AncestorType=ComboBox}} 

?

(Извините, не пробовал код сам.)

+0

Thx, он работает! – Artem

+0

Добро пожаловать! – Vlad

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