DataGrid:如何将单击处理程序添加到动态图像列 [英] DataGrid: how to add click handler to dynamic image column

查看:74
本文介绍了DataGrid:如何将单击处理程序添加到动态图像列的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

图像列在运行时添加到DataGrid。


DataGridTemplateColumn templateCol = new DataGridTemplateColumn();


templateCol.CellTemplate = XamlReader .Load(string.Format(@"< DataTemplate

xmlns ='http://schemas.microsoft.com/client/2007'

xmlns:x ='http ://schemas.microsoft.com/winfx/2006/xaml'

>

< Button BorderThickness ='0'>

< Image Source ='{{Binding {0},Converter = {{StaticResource myImageConverter}} }}'/>

< / Button>

< / DataTemplate> ;",

" byteAColumn"

))作为DataTemplate;


Columns.Add(templateCol);




如果用户点击图片,如何调用代码?


我试图在运行时使用

$ b $添加点击处理程序b

按钮按钮=新按钮();

button.ContentTemplate = XamlReader.Load(string.Format(@"< DataTemplate

xmlns ='http:/ /schemas.microsoft.com/client/ 2007'

xmlns:x ='http://schemas.microsoft.com/winfx/2006/xaml'

>

< Image Source ='{{Binding {0},Converter = {{StaticResource myImageConverter}}  } /'>

< / DataTemplate>",

" byteAColumn"

))作为DataTemplate;


Columns.Add(按钮);


但最后一行出现编译错误


参数1:无法从'系统转换。 Windows.Controls.Button'到'System.Windows.Controls.DataGridColumn' 


是否可以使用它或创建子类按钮或任何其他想法?


Andrus。

解决方案

您可以使用
LoadContent
方法帮助。


Image column is added to DataGrid at runtime.

DataGridTemplateColumn templateCol = new DataGridTemplateColumn();

templateCol.CellTemplate = XamlReader.Load(string.Format(@"<DataTemplate
xmlns='http://schemas.microsoft.com/client/2007'
xmlns:x='http://schemas.microsoft.com/winfx/2006/xaml'
>
<Button BorderThickness='0'>
<Image Source='{{Binding {0}, Converter={{StaticResource myImageConverter}}  }}'/>
</Button>
</DataTemplate>",
"byteAColumn"
)) as DataTemplate;

Columns.Add(templateCol);


How to invoke code if user clicks in image ?

I tried to add click handler at runtime using

Button button = new Button();
button.ContentTemplate = XamlReader.Load(string.Format(@"<DataTemplate
xmlns='http://schemas.microsoft.com/client/2007'
xmlns:x='http://schemas.microsoft.com/winfx/2006/xaml'
>
<Image Source='{{Binding {0}, Converter={{StaticResource myImageConverter}}  }}'/>
</DataTemplate>",
"byteAColumn"
)) as DataTemplate;

Columns.Add(button);

but got compile error in last line

Argument 1: cannot convert from 'System.Windows.Controls.Button' to 'System.Windows.Controls.DataGridColumn' 

Is is possible to use this or create subclassed button or any other idea ?

Andrus.

解决方案

You can get controls inside DataTamplate with LoadContent method help.


这篇关于DataGrid:如何将单击处理程序添加到动态图像列的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆