如何正确显示BitmapImage?

How to display BitmapImage correctly?

我想在 ListBox 中显示来自 SQL 服务器数据库的一些图像。我将图像从二进制转换为 BitmapImage 然后我添加如下:

foreach (var screenshot in screenshots)
{
    ImageListBox.Items.Add(screenshot);
}

输出如下所示:

如何才能正确显示图像?

编辑:这是我的 xaml 代码:

<ListBox Name="ImageListBox">
</ListBox>

编辑 2:

这是我转换图像的方式:

public BitmapImage ConvertImage(byte[] value)
{
    if (value != null && value.Length > 0)
    {
        using (MemoryStream stream = new MemoryStream(value))
        {
            BitmapImage image = new BitmapImage();
            image.BeginInit();
            image.StreamSource = stream;
            image.EndInit();
            return image;
        }
    }
    return null;
}

这是我的查询:

var screenshots = context
    .Error.Include(_ => _.ErrorScreenshots)
    .First(_ => _.Id == selectedError.Id)
    .Error
    .Select(_ => new { Image = ConvertImage(_.Screenshot) })
    .ToArray();

ListBox 将默认显示使用其 toString() 方法的对象。在您的情况下,您最终得到 "Image = System.Windows.Media.Bitmap.Image"

为了指示每个项目都应显示为 Image 对象,请指定一个 ItemTemplate。

<ListBox Name="ImageListBox">
  <ListBox.ItemTemplate>
    <DataTemplate>
      <StackPanel Orientation="Horizontal" >
        <Image Source="{Binding}" />
      </StackPanel>
    </DataTemplate>
  </ListBox.ItemTemplate>
</ListBox>