博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
WPF 获取 ListView DataTemplate 中控件值
阅读量:6873 次
发布时间:2019-06-26

本文共 1663 字,大约阅读时间需要 5 分钟。

原文:

版权声明:本文为博主原创文章,未经博主允许可以随意转载 https://blog.csdn.net/songqingwei1988/article/details/50475191

RT

虽然DataTemplate 是用来绑定的,一般用ONE TWOWAY 来绑定传递或获取数据.

但是今天这个需求真是没办法,在绑定的模板内添加了一个非绑定的数据,需要手动取值.

解决方案原理:

https://msdn.microsoft.com/zh-cn/library/bb613579.aspx

foreach (var item in FListView.Items)            {                var myListBoxItem = (ListViewItem)FListView.ItemContainerGenerator.ContainerFromItem(item);                // Getting the ContentPresenter of myListBoxItem                var myContentPresenter = FindVisualChild
(myListBoxItem); // Finding textBlock from the DataTemplate that is set on that ContentPresenter DataTemplate myDataTemplate = myContentPresenter.ContentTemplate; var obj = myDataTemplate.FindName("CheckNum", myContentPresenter);//CheckNum 是在模板内定义的 x:Name var checkNum = obj as NumericControl;//自定义控件 if (checkNum != null) {//...do something } }

private childItem FindVisualChild
(DependencyObject obj) where childItem : DependencyObject { for (int i = 0; i < VisualTreeHelper.GetChildrenCount(obj); i++) { DependencyObject child = VisualTreeHelper.GetChild(obj, i); if (child != null && child is childItem) return (childItem)child; else { childItem childOfChild = FindVisualChild
(child); if (childOfChild != null) return childOfChild; } } return null; }

你可能感兴趣的文章
阿里巴巴Java开发手册
查看>>
redis配置文件redis.conf详细说明
查看>>
(七)Flask 学习 —— 单元测试
查看>>
Web前端规范--Javascript规范
查看>>
Dubbo相关
查看>>
scss 在webpack 编码问题
查看>>
TypeError: s[y] is not a function 表单提交错误
查看>>
java使用nircmd代替cmd解决管理员权限问题
查看>>
JPA mappedBy属性
查看>>
开启服务器Mcrypt.so加密库的方法
查看>>
如何将SWT程序移植到Applet
查看>>
去好店,一个人在城市里面发生的故事
查看>>
点在面内(2)
查看>>
SPRING注解发布RMI/HTTPInvoker/Hessian/Burlap服务
查看>>
Jmeter(一)-精简测试脚本
查看>>
PowerDesigner显示Comment注释
查看>>
Learn Python the Hard Way: 类(Class)和对象(Object)
查看>>
centos安装或修复grub并使用grub引导系统
查看>>
ThinkPHP 上传文件方法
查看>>
Linux 系统 网卡RTL8723BE 信号差不稳定的解决办法
查看>>