如何从代码隐藏中访问控件模板的元素

我正在尝试访问内容控件的控件模板内的用户控件。 特别:

<ContentControl x:Name="MyList" > <ContentControl.Template> <ControlTemplate x:Name="MyControlTemplate"> <Border RenderTransformOrigin="0,0" x:Name="border"> <UserControls:MyControl x:Name="MyControlName" Width="100" ViewModel="{Binding}" /> 

我可以访问this.MyList但它说this.MyControlName找不到。 在这种情况下如何从代码隐藏中访问MyControlName对象?

谢谢!

您需要获取模板并在模板化控件上按名称查找控件,如下所示:

 var template = MyList.Template; var myControl = (MyControl)template.FindName("MyControlName", MyList); 

模板就是这样的:抽象描述什么是被创build的,模板中的控件只存在于被模板化的东西的上下文中。

U也可以通过在控件中添加Loaded事件来获取每个模板的控件,然后在代码中将事件的发件人分配给某个variables。