图像UriSource和数据绑定

图像UriSource和数据绑定

我正在尝试将自定义对象列表绑定到WPF图像,如下所示:

<Image>
    <Image.Source>
        <BitmapImage UriSource="{Binding Path=ImagePath}" />
    </Image.Source></Image>

但它不起作用。这是我得到的错误:

必须设置“Property'UriSource'或属性'StreamSource'。”

我错过了什么?


哆啦的时光机
浏览 1024回答 3
3回答

RISEBY

Atul Gupta&nbsp;撰写的这篇文章包含几个场景的示例代码:在XAML中绑定到Source属性的常规资源图像绑定资源图像,但从后面的代码使用Application.GetResourceStream绑定代码中的资源图像通过内存流从文件路径加载图像(从数据库加载博客图像数据时同样适用)从文件路径加载图像,但通过使用绑定到文件路径属性将图像数据绑定到内部通过依赖属性进行图像控制的用户控件与第5点相同,但也确保文件不会被锁定在硬盘上

侃侃尔雅

您也可以简单地设置Source属性而不是使用子元素。为此,您的类需要将图像作为位图图像返回。这是我做过的一种方式的例子<Image&nbsp;Width="90"&nbsp;Height="90"&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Source="{Binding&nbsp;Path=ImageSource}" &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Margin="0,0,0,5"&nbsp;/>而class属性就是这个public&nbsp;object&nbsp;ImageSource&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;get&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BitmapImage&nbsp;image&nbsp;=&nbsp;new&nbsp;BitmapImage(); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;try&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;image.BeginInit(); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;image.CacheOption&nbsp;=&nbsp;BitmapCacheOption.OnLoad; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;image.CreateOptions&nbsp;=&nbsp;BitmapCreateOptions.IgnoreImageCache; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;image.UriSource&nbsp;=&nbsp;new&nbsp;Uri(&nbsp;FullPath,&nbsp;UriKind.Absolute&nbsp;); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;image.EndInit(); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;catch{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;DependencyProperty.UnsetValue; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;image; &nbsp;&nbsp;&nbsp;&nbsp;} }我想它可能比价值转换器多一点工作,但它是另一种选择。
打开App,查看更多内容
随时随地看视频慕课网APP