在我正在定义另一个控件的ControlTemplate
的控件的ControlTemplate
中,我希望从外部lstBx
获取对ListBox ControlTemplate
的引用,
既不是:Storyboard.TargetName="lstBx"
也不是:{/ p>
Storyboard.Target="{Binding ElementName=lstBx, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type ListBox}}}"
这是我的代码的简化版本
<ControlTemplate TargetType="{x:Type ContentControl}" x:Name="cont">
<Grid Width="{TemplateBinding Width}" Height="{TemplateBinding Height}">
<Grid.RowDefinitions>
<RowDefinition Height="auto" />
<RowDefinition Height="auto" />
</Grid.RowDefinitions>
<Border Canvas.ZIndex="1" CornerRadius="4" BorderThickness="1" BorderBrush="Black" Background="{StaticResource btn3d}">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="32" />
<ColumnDefinition Width="1" />
<ColumnDefinition Width="2*" />
</Grid.ColumnDefinitions>
<ToggleButton Padding="30, 10">
<ToggleButton.Template>
<ControlTemplate TargetType="ToggleButton">
<ControlTemplate.Triggers>
<EventTrigger RoutedEvent="ToggleButton.Checked">
<BeginStoryboard>
<Storyboard>
<DoubleAnimation Storyboard.TargetName="lstBx" Storyboard.TargetProperty="Height" From="0" To="60" Duration="0:0:0.5" />
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</ToggleButton.Template>
</ToggleButton>
<StackPanel Grid.Column="2" />
</Grid>
</Border>
<ListBox Name="lstBx" Height="0" Grid.Row="1" ItemsSource="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=ItemsSource}" />
</Grid>
</ControlTemplate>
答案 0 :(得分:-1)
虽然无法执行此类绑定,但您可以使用某些代理。
例如,您可以绑定到ToggleButton
的{{1}}属性:
Tag