WPF 中不显示具有正确路径的图像

Image with correct path doesn't show in WPF

我有以下内容UI:

单击左侧显示“维也纳之旅”的列表框后;在右边它应该显示一个图像。我已经通过以下方式绑定了图像源:

<Image Grid.Row="1" Source="{Binding (vm:MainViewModel.AddTourViewModel).SelectedTour.RouteImage, Converter={StaticResource AddTourViewModel}}"/>

我现在遇到的问题是,图像路径是正确的,但是在 UI 中图像本身没有显示。

这是我在视图模型中转换图像的方式:

   public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
        {
            return value != null
                ? new BitmapImage() { UriSource = new Uri(value.ToString(), UriKind.Relative) }
                : new BitmapImage() { UriSource = new Uri("error.jpg", UriKind.Relative) };

        }

点击“维也纳之旅”后的值指向如下图所示的图片路径:

BitmapImage实现了ISupportInitialize接口,这意味着当你通过设置它的UriSource 属性来初始化一个BitmapImage时,你必须调用BeginInit()EndInit() 方法。

为方便起见,有一个带有Uri参数的构造函数:

public object Convert(
    object value, Type targetType, object parameter, CultureInfo culture)
{
    return value != null 
        ? new BitmapImage(new Uri(value.ToString(), UriKind.Relative)) 
        : new BitmapImage(new Uri(@"error.jpg", UriKind.Relative));
}

或者,使用 BitmapFrame class:

public object Convert(
    object value, Type targetType, object parameter, CultureInfo culture)
{
    return value != null 
        ? BitmapFrame.Create(new Uri(value.ToString(), UriKind.Relative)) 
        : BitmapFrame.Create(new Uri(@"error.jpg", UriKind.Relative));
}