0

グループで項目を表示するために、Combobox.GroupStyle の HeaderTemplate を作成しました。また、ユーザーが GroupHeader をクリックしたときに、コンボボックスでいくつかの操作を行う必要があることを知っています。Combobox.GroupStyle の HedaerTemplate にトリガーを書き込もうとしましたが、うまくいきません。以下は、コンボボックスの完全なコードです。

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

例として、プロパティ「幅」を取り上げました。しかし、うまくいきませんでした。アニメーションは、ComboBox 全体ではなく、GroupHeader を展開します。

4

1 に答える 1

0

TemplateBinding は、テンプレートが適用されるアイテム、つまりヘッダーにバインドします。おそらく、バインディングを次のように設定する必要があります

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

?

(申し訳ありませんが、自分でコードを試していません。)

于 2010-11-06T11:55:44.697 に答える