我正在开发一个源自" Control"用于创建自定义控件的类。在 Generic.xaml 文件中,我添加了以下代码来创建Tab控件模板:
<Style TargetType="{x:Type local:NavigationPane}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type local:NavigationPane}">
<TabControl Name="tabControl" Margin="1" TabStripPlacement="Left">
<TabControl.ItemTemplate >
<DataTemplate >
<Button Name="buttonImage" >
<Image Name="img" Height="24" Width="24" Source ="{Binding PageIcon}"/>
</Button>
</DataTemplate>
</TabControl.ItemTemplate>
</TabControl>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
在NavigationPane类中,我想访问名为&#34; btnImage&#34;的控件。我想为它添加一个事件处理程序。
我尝试了以下方法:
ContentPresenter cp = tabControl.Template.FindName("PART_SelectedContentHost", tabControl) as ContentPresenter;
btnImage = tabControl.ContentTemplate.FindName("btnImage", cp) as Button;
if (btnImage != null)
{
btnImage.Click += btnImage_Click;
}
看起来上面的代码只能从ItemTemplate获取ContentTemplate中的项目。我想知道获取指向项目模板中控件的指针的方法是什么,这是Tab Control的标题部分。