如何从代码隐藏中访问控件模板的元素
我正在尝试访问内容控件的控件模板内的用户控件。 特别:
<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。