Я пытаюсь связать источник изображения со своим XAML через c#
это работает
<Image Source="images/man.jpg"></Image>
это не работает
<Image Source="images/{Binding imagesource}"></Image>
где imagesource является строковой переменной в c# файле этого xaml и устанавливается равный "man.jpg"
Вы не можете вставить привязку в середине значения, подобного этому. Это либо привязка, либо нет. Предполагая, что источник изображения общедоступен через ваш DataContext
, вы можете сделать это:
<Image Source="{Binding imagesource}"/>
Однако, если для него установлено значение «man.jpg», изображение не будет найдено. Либо установите в качестве источника изображения полный путь ("images / man.jpg"), либо используйте конвертер:
<Image Source="{Binding imagesource, Converter={StaticResource RelativePathConverter}}"/>
Конвертер добавит "images /" к его значению. Однако может потребоваться, чтобы преобразователь возвратил ImageSource
, а не строку
.
источник изображения
должен быть фактическим объектом Image
, а не строкой
.
Вот метод, который создаст новый объект Image
с заданным путем:
public BitmapImage Load(string path)
{
var uri = new Uri(path);
return new BitmapImage(uri);
}