У меня есть приложение WPF, которое использует конвертер:
public class MyResultImageConverter : IValueConverter
{
public Image OkImage { get; set; }
public Image FailImage { get; set; }
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
if (value == null || !(value is MyCustomObject))
{
return null;
}
Image img = null;
MyCustomObjectdbr = (MyCustomObject)value;
switch (MyCustomObjectdbr.Code)
{
case (int)MyEnum.OK:
img = this.OkImage;
break;
case (int)MyEnum.NOK:
img = this.FailImage;
break;
default:
break;
}
return img;
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
throw new NotImplementedException();
}
}
Затем в ресурсах окна я делаю:
<myConverters:MyResultImageConverter
OkImage="/My.Tools.Graphics;component/Images/Accept.png"
FailImage="/My.Tools.Graphics;component/Images/Cancel.png"
x:Key="MyResultImageConverter"/>
Этот конвертер позже используется в DataGridTemplateColumn:
<dg:DataGridTemplateColumn
Width="SizeToCells"
IsReadOnly="True">
<dg:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Image Source="{Binding Path=MyResult, Converter={StaticResource MyResultImageConverter}}" />
</DataTemplate>
</dg:DataGridTemplateColumn.CellTemplate>
</dg:DataGridTemplateColumn>
Компилятор выдает ошибку при попытке установить свойство Image для конвертера:
<myConverters:MyResultImageConverter
OkImage="/My.Tools.Graphics;component/Images/Accept.png"
FailImage="/My.Tools.Graphics;component/Images/Cancel.png"
x:Key="MyResultImageConverter"/>
Более или менее, в переводе написано:
Невозможно присвоить значение"/My.Tools.Graphics;component/Images/Accept.png" для свойства OkImage '.Свойство 'OkImage' типа 'Изображение' нельзя указывать в виде строки.
My.Tools.Graphics - это библиотека DLL, добавленная в мое решение для Visual Studio, которое содержит папку с изображениями, которая содержит изображения PNG..