Один из способов удалить ошибку из компилятора - это создать IValueConverter и использовать в элементе ImageBru sh, как рекомендует компилятор.
IValueConverter может писать так:
[ValueConversion(typeof(string), typeof(ImageSource))]
public class StringToImageSourceConverter : IValueConverter {
public object Convert(object value, Type targetType, object parameter, CultureInfo culture) {
if (value == null) return null;
var path = value.ToString();
return new BitmapImage(new Uri(path, UriKind.RelativeOrAbsolute));
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) {
throw new NotSupportedException();
}
}
и в xaml FieldControl:
<UserControl.Resources>
<local:StringToImageSourceConverter x:Key="StringToImageSourceConverter" />
</UserControl.Resources>
<Grid Height="100">
<Grid.Background>
<ImageBrush ImageSource="{Binding Path=BackgroundPath, Mode=OneWay, UpdateSourceTrigger=PropertyChanged, ElementName=Uc1,
Converter={StaticResource StringToImageSourceConverter}}" />
</Grid.Background>
</Grid>
После этого вы не должны видеть ошибку от компилятора.
Я тестирую код в this проект.