在运行时定义的wpf datagrid中显示位图图像

时间:2012-03-14 12:44:57

标签: wpf wpfdatagrid

寻找关于如何在运行时定义列的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。正确显示所有其他绑定字段。

我可以看到转换器正在为此列命中,我是否遗漏了绑定上的内容?

...谢谢

1 个答案:

答案 0 :(得分:1)

  

我应该使用DataGridTemplateColumn吗?

是的,结合实例化Image控件的模板,其中您的图像为Source,WPF与ImageSource基类一起使用,您需要转换Bitmap。搜索SO,已经存在一个问题(Interop类可能会有所帮助)。