欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

WPF学习笔记(4):获取DATAGRIDTEMPLATECOLUMN模板定义的内容控件

程序员文章站 2022-04-14 17:04:54
在之前的DataGrid的DATAGRIDTEMPLATECOLUMN列中,自定义了一个TextBox控件,但是在C#代码中提示找不到这个控件,导致无法对该控件进行操作。在网上搜索后,发现一些处理方法比较繁琐,下面这个方法最简便。 xaml格式描述: 现在要获取expander控件,代码如下: 原贴 ......

在之前的datagrid的datagridtemplatecolumn列中,自定义了一个textbox控件,但是在c#代码中提示找不到这个控件,导致无法对该控件进行操作。在网上搜索后,发现一些处理方法比较繁琐,下面这个方法最简便。

xaml格式描述:

 1 <datagrid name="datagrid" grid.row="1" itemssource="{binding}"  >
 2        <datagrid.columns>
 3             <datagridtemplatecolumn header="描述">
 4                     <datagridtemplatecolumn.celltemplate>
 5                         <datatemplate>
 6                             <expander x:name="expander" header="{binding describe}">
 7                                 <textblock text="{binding path=exception}" textwrapping="wrap" minheight="30"  minwidth="250" />
 8                             </expander>
 9                         </datatemplate>
10                     </datagridtemplatecolumn.celltemplate>
11               </datagridtemplatecolumn>
12        </datagrid.columns>
13 </datagrid>

现在要获取expander控件,代码如下:

1 int index = datagrid.currentcell.column.displayindex;
2 datagridtemplatecolumn templecolumn = datagrid.columns[index] as datagridtemplatecolumn;
3 
4 if(templecolumn == null) return;
5 
6 object item = datagrid.currentcell.item;
7 frameworkelement element = templecolumn.getcellcontent(item);
8 expander expander= templecolumn.celltemplate.findname("expander", element);

 

原贴地址:

原作者:烟灰缸