DataGrid:如何将单击处理程序添加到动态图像列 [英] DataGrid: how to add click handler to dynamic image column
问题描述
图像列在运行时添加到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屋!