Loc*_*eyu 44 syntax wpf user-controls code-behind
我正在尝试访问内容控件的控件模板内的用户控件.特别:
<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}" />
Run Code Online (Sandbox Code Playgroud)
我可以访问this.MyList,但它说明了找不到.MyControlName.在这种情况下如何从代码隐藏中访问MyControlName对象?
谢谢!
H.B*_*.B. 80
您需要获取模板并在模板化控件上按名称找到控件,如:
var template = MyList.Template;
var myControl = (MyControl)template.FindName("MyControlName", MyList);
Run Code Online (Sandbox Code Playgroud)
模板就是这样:对要创建的内容的抽象描述,模板中的控件仅存在于模板化内容的上下文中.
请注意,如果要创建模板所用的控件,则只应访问控件模板中的元素.从外部访问应通过绑定属性和方法完成.
对于数据模板,这是类似的.您需要访问的所有内容应该绑定到一个对象,然后应该通过所述对象进行访问.在项目控件虚拟化其项目的情况下尤其如此,因此元素在大多数情况下甚至不存在.
Daw*_*ski 10
通过在控件中添加Loaded事件,然后在代码中将事件的发送者分配给某个变量,U也可以从每个模板获得控制权.
| 归档时间: |
|
| 查看次数: |
46678 次 |
| 最近记录: |