我有一个针对Windows UWP平台的C#应用。 App在列表视图中显示图像。根据查询,这些图像可以来自应用程序
当图片的来源位于应用程序的容器或在线源中时,我可以将图像源绑定到XAML中的有效URI以获取图像。
当图像的源是本地的时,图像的URL是专有的&我们使用自己的 imge_fetch api从我们的服务器获取图像。
我的问题是如何指定一个XAML绑定,它能够获取uri(当图像来自应用程序的容器或在线源)或BitmapImage(由我们的 image_fetch返回) apis)
我已查看过有关IValueConverter的帖子
我想知道,如果在UWP中有更好/更容易的方式去做我想要实现的目标。
答案 0 :(得分:3)
您可以使用类型为object
的源属性创建一个视图模型项类,以便您可以分配string
,Uri
或ImageSource
:
public class ImageItem
{
public object ImageSource { get; set; }
}
在XAML中,您可以直接绑定到此属性,并从内置自动类型转换中受益:
<ListBox ItemsSource="{Binding}">
<ListBox.ItemTemplate>
<DataTemplate>
<Image Source="{Binding ImageSource}"/>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
分配图像项目我的样子如下:
DataContext = new ImageItem[]
{
new ImageItem { ImageSource = "ms-appx:///Assets/StoreLogo.png" },
new ImageItem { ImageSource = new Uri("ms-appx:///Assets/Square150x150Logo.scale-200.png") },
new ImageItem { ImageSource = new BitmapImage(new Uri("ms-appx:///Assets/Square44x44Logo.scale-200.png")) },
};