WPF控件模板绑定到子控件

时间:2012-08-22 18:56:44

标签: wpf templates binding controls

在TreeViewItem控件模板中,我需要将可视状态绑定到子控件,但我无法弄清楚绑定语法。

在TreeView的HierarchicalDataTemplate中,我有:

       <TreeView.ItemTemplate>
            <HierarchicalDataTemplate ItemsSource="{Binding Children}">
                <StackPanel>
                    <Image Name="imgPicture" Source=".."/>                      
                </StackPanel>
            </HierarchicalDataTemplate>
        </TreeView.ItemTemplate>

我想在控件模板中将可视状态动画绑定到imgPicture。

在TreeViewItem的控件模板中,我有:

<VisualState Name="Selected">
     <Storyboard>
           <DoubleAnimation Storyboard.TargetName="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=Header}" 
Storyboard.TargetProperty="MaxHeight"
To="100"
Duration="0"/>
     </Storyboard>
</VisualState>

但是Storyboard.TargetName绑定到StackPanel(因为那是TreeViewItem的标题),我需要它绑定到StackPanel内部的控件(imgPicture),以便我可以更改控件的属性。有没有办法通过使用xaml绑定语法来实现这一点?非常感谢你的帮助。

1 个答案:

答案 0 :(得分:0)

您可以使用ElementName属性(imgPicture)创建Binding,或将Storyboard.TargetName设置为imgPicture。