Невозможно установить свойство UriSource
для BitmapImage
, как вы показали, поскольку оно имеет тип Uri, и вы пытаетесь установить его в строку. Я бы сказал, что самый простой способ выполнить то, что вы делаете, это привязать ваш Image.Source к Icon, а затем преобразовать строку в растровый объект Image. Предполагая, что ваш элемент управления находится в окне, это будет выглядеть примерно так
<Window.Resources>
<converters:StringToBitmapImageConverter x:Key="stringToBitmapImageConverter" />
</Window.Resources>
...
<Image Grid.Column="0" Margin="3" Width="27" Height="27"
Source="{Binding Path=Icon, Converter={StaticResource stringToBitmapImageConverter}}">
</Image>
И тогда конвертер будет выглядеть так:
class StringToBitmapImageConverter: IValueConverter
{
#region IValueConverter Members
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
BitmapImage image = new BitmapImage();
image.BeginInit();
image.UriSource = new Uri(value as string);
image.EndInit();
return image;
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
throw new NotImplementedException();
}
#endregion
}