gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 06:21:35 25 4
gpt4 key购买 nike

我正在尝试访问内容控件的控件模板内的用户控件。具体来说:

  <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);

模板就是这样:对要创建的内容的抽象描述,模板中的控件仅存在于正在模板化的内容的上下文中。

<小时/>

请注意,如果您正在创作模板所用的控件,则您应该只访问控件模板中的元素。从外部的访问应该通过绑定(bind)的属性和方法来完成。

对于数据模板来说这是类似的。您需要访问的所有内容都应该绑定(bind)到一个对象,然后访问应该通过该对象进行。对于虚拟化其项目的项目控件来说尤其如此,因此元素在大多数情况下甚至不存在。

关于wpf - 如何从代码隐藏中访问控件模板的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8126700/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com