寻找关于如何在运行时定义列的wpf数据网格中正确显示图像的一些指导,我无法在XAML中定义列。
我的网格底层集合包含一个与某个图像相关的整数字段。
我在运行时在datagrid上创建一个DataGridTextColumn列并绑定它并设置转换器。
Binding binding = new Binding("MyIntegerField");
binding.Converter = new Converters.IconIndexToImageConverter();
我的转换器看起来像这样;
public class IconIndexToImageConverter: IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
System.Drawing.Bitmap bitmap = null;
if (value != null)
{
int imageIndex = (int)value;
switch (imageIndex)
{
case 1:
return Properties.Resources.clip;
但在我的网格中我没有看到图像,但看到了类型名称System.Drawing.Bitmap。正确显示所有其他绑定字段。
我可以看到转换器正在为此列命中,我是否遗漏了绑定上的内容?
...谢谢
答案 0 :(得分:1)
我应该使用DataGridTemplateColumn吗?
是的,结合实例化Image
控件的模板,其中您的图像为Source
,WPF与ImageSource
基类一起使用,您需要转换Bitmap
。搜索SO,已经存在一个问题(Interop
类可能会有所帮助)。