在运行时定义的wpf数据网格中显示位图图像

在运行时定义的wpf数据网格中显示位图图像,wpf,wpfdatagrid,Wpf,Wpfdatagrid,关于如何在运行时定义了列的wpf数据网格中正确显示图像,我需要一些指导,但我无法在XAML中定义列 My grids基础集合包含一个与特定图像相关的整数字段 我在运行时在我的datagrid上创建一个DataGridTextColumn列,绑定它并设置一个转换器 Binding binding = new Binding("MyIntegerField"); binding.Converter = new Converters.IconIndexToImageConverter(); 我的转换

关于如何在运行时定义了列的wpf数据网格中正确显示图像,我需要一些指导,但我无法在XAML中定义列

My grids基础集合包含一个与特定图像相关的整数字段

我在运行时在我的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。所有其他绑定字段均正确显示

我可以看到这个专栏的转换器被点击了,我是不是在绑定上遗漏了什么

谢谢

我应该使用DataGridTemplateColumn吗


是的,与实例化控件的模板结合使用,该模板将图像作为其
,WPF与基类一起工作,您将需要转换
位图
。因此,应该有一个问题(该类可能会有所帮助)。

为什么您认为DataGridTextColumn是正确的选择?还有,为什么要使用System.Drawing.Bitmap?谢谢你…我正在呈现的图像作为System.Drawing.Bitmap存储在资源文件中。我应该使用DataGridTemplateColumn吗?请参阅答案;顺便问一下,为什么不能用XAML定义它?通常人们认为他们不能,因为他们没有足够的经验。在这种情况下,您至少可以将XAML中的列的模板定义为a。多亏了这一点,数据网格列是完全可由用户定义的,所以我无法在xmal中定义列定义,或者至少我不知道如何定义。我很感激该模板可以存在于xaml资源中,再次感谢。。。。