WPF 获取 ListView DataTemplate 中控件值
原文:WPF 获取 ListView DataTemplate 中控件值
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<ContentPresenter>(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<childItem>(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<childItem>(child);
                    if (childOfChild != null)
                        return childOfChild;
                }
            }
            return null;
        }
WPF 获取 ListView DataTemplate 中控件值的更多相关文章
- asp.net 获取表单中控件的值
		
原文:https://blog.csdn.net/happymagic/article/details/8480235 C# 后台获取前台 input 文本框值.(都是以控件的Name来获取) s ...
 - Winform中在FastReport的PreviewControl预览控件中对report控件模板中控件值进行修改
		
场景 FastReport安装包下载.安装.去除使用限制以及工具箱中添加控件: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/10 ...
 - 继续聊WPF——获取ComboBox中绑定的值
		
千万不要认为WPF中的数据绑定会很复杂,尽管它的确比Winform程序灵活多了,但其本质是不变的,特别是ComboBox控件,我们知道在Winform中对该控件的有两个专为数据绑定而设定的属性——Di ...
 - C#中子窗体获取父窗体中控件的内容
		
今天在做一个联系人管理的C#设计时,遇到了这个问题,我需要将父窗体中的textBox中的值传到子窗体并进行数据库查询操作,我用了new 父窗体().textBox.text;来进行值传递,然而并无卵用 ...
 - MVVM模式下 DataTemplate 中控件的绑定
		
今天给ListBox中通过DataTemplate生成的Button绑定命令时,一开始Button始终找不到绑定的命令.现找到了正确的绑定方式,特来记录一下. 先上个正确的示例: <ListBo ...
 - WPF获取当前用户控件的父级窗体
		
方式一.通过当前控件名获取父级窗体 Window targetWindow = Window.GetWindow(button); 方式二.通过当前控件获取父级窗体 Window parentWind ...
 - C# WPF 获取窗体和控件的句柄
		
窗体: IntPtr hwnd = new WindowInteropHelper(this).Handle; 控件: IntPtr hwnd = ((HwndSource)PresentationS ...
 - FineReport——获取控件值和单元格值
		
设置单元格的值(填报预览): //contentPane.setCellValue(1,0,"abc");//参数面板给单元格赋实际值,即可填报 contentPane.curLG ...
 - android获取自己定义控件位置坐标,屏幕尺寸,标题栏,状态栏高度
		
android获取自己定义控件位置坐标,屏幕尺寸,标题栏,状态栏高度 1.获取自己定义控件height 在本Activity中获取当前Activity中控件的height: Button button ...
 
随机推荐
- 【t041】距离之和
			
Time Limit: 1 second Memory Limit: 128 MB [问题描述] 在一条数轴上有N头牛在不同的位置上,每头牛都计算到其它各头牛的距离.求这n*(n-1)个距离的总和. ...
 - 如何调试Javascript代码
			
转自原文如何调试Javascript代码 目前,常用的浏览器IE.Chrome.Firefox都有相应的脚本调试功能.作为我们.NET 阵营,学会如何在IE中调试JS就足够了,在掌握了IE中的调试方法 ...
 - hadoop集群中的日志文件                                                    分类:            A1_HADOOP             2015-02-28 20:37    680人阅读    评论(0)    收藏
			
hadoop存在多种日志文件,其中master上的日志文件记录全面信息,包括slave上的jobtracker与datanode也会将错误信息写到master中.而slave中的日志主要记录完成的ta ...
 - [D3] Convert Input Data to Output Values with Linear Scales in D3
			
Mapping abstract values to visual representations is what data visualization is all about, and that’ ...
 - 从0開始学习 GitHub 系列之「07.GitHub 常见的几种操作」
			
之前写了一个 GitHub 系列,反响非常不错,突然发现居然还落下点东西没写,前段时间 GitHub 也改版了,借此机会补充下. 我们都说开源社区最大的魅力是人人多能够參与进去,发挥众人的力量,让一个 ...
 - 广播(broadcast)、电视与电视网络
			
1. 闭路电视与电视 Closed Circuit Television (CCTV) 一种图像通信系统.其信号从源点只传给预先安排好的与源点相通的特定电视机.广泛用于大量不同类型的监视工作.教育.电 ...
 - Objective-C基础笔记(8)Foundation经常使用类NSString
			
一.创建字符串的方法 void stringCreate(){ //方法1 NSString *str1 = @"A String!"; //方法2 NSString *str2 ...
 - 联想笔记本装win7
			
http://jingyan.baidu.com/article/7c6fb42862d63a80642c90b8.html http://bbs.thinkworldshop.com.cn/thre ...
 - 【codeforces 750D】New Year and Fireworks
			
time limit per test2.5 seconds memory limit per test256 megabytes inputstandard input outputstandard ...
 - layer弹框在实际项目中的一些应用
			
官方介绍:layer至今仍作为layui的代表作,受众广泛并非偶然,而是这五年多的坚持,不断完善和维护.不断建设和提升社区服务,使得猿们纷纷自发传播,乃至于成为今天的Layui最强劲的源动力.目前,l ...