Отображение растрового изображения в сетке данных wpf, определенной во время выполнения - PullRequest
0 голосов
/ 14 марта 2012

В поисках некоторых советов, как правильно отображать изображение в сетке данных wpf, столбцы которой определены во время выполнения, я не могу определить столбцы в XAML.

Моя сетка, лежащая в основе коллекции, содержит целочисленное поле, которое относится к определенному изображению.

Я создаю столбец 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 Ответ

1 голос
/ 14 марта 2012

Должен ли я использовать DataGridTemplateColumn?

Да, в сочетании с шаблоном, который создает экземпляр элемента управления Image, в котором ваше изображение имеет Source, WPF работает с базовым классом ImageSource, вам нужно будет конвертировать Bitmap. Ищите SO, там уже должен быть вопрос об этом (класс Interop может быть полезным).

...