获取控件存在于TabControl的ItemTemplate中

时间:2014-08-08 07:38:35

标签: c# .net wpf

我正在开发一个源自" 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的标题部分。

0 个答案:

没有答案