2012-08-22 53 views
0

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

在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的(因为这是树型视图的标题),我需要它绑定到内部控制StackPanel(imgPicture),以便我可以更改控件的属性。有没有办法,我可以通过使用xaml绑定语法来做到这一点?非常感谢您的帮助。

+0

Doesn't'Storyboard.TargetName =“imgPicture”'work? – dvvrd

+0

我试过Storyboard.TargetName =“imgPicture”,但它返回了异常:'System.Windows.Controls.StackPanel'的名称范围中找不到'imgPicture'名字 –

回答

0

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

+0

我试过Storyboard.TargetName =“imgPicture”,但它返回了异常:'System.Windows.Controls.StackPanel'的名称范围中找不到'imgPicture'名称。还尝试设置ElementName,但它不起作用。 –