WPF 获取ControlTemplate 或DataTemplate样式里面的控件

WPF常用到ControlTemplate 或DataTemplate,可以再里面嵌套控件,那么问题来了,在ControlTemplate 或DataTemplate里面写的控件或容器怎么获取呢,直接使用name是不行的

以下贴出MSDN官方的解决方法

ControlTemplate

https://docs.microsoft.com/zh-cn/dotnet/framework/wpf/controls/how-to-find-controltemplate-generated-elements

DataTemplate

https://docs.microsoft.com/zh-cn/dotnet/framework/wpf/data/how-to-find-datatemplate-generated-elements

以上要注意常出现null的问题

ControlTemplate里这种用法只能获取直接关联的子元素,如果是像ItemBox,ItemView等等里的item元素是获取不到的,还有,因为UI需要加载窗体,需要一个时间,所以要注意顺序,不能在构造函数中获取ControlTemplate,那样会显示null,可以再窗体load事件以及控件的事件中使用

DataTemplate要注意以上方法是通过遍历item得到的,也就是说如果你的ItemBox,ItemView等等还没加载数据源,即没有item时不能使用,会报null

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值