【发布时间】:2015-08-31 10:49:36
【问题描述】:
我有一个绑定到视图模型中的字符串资源的视图,它可以很好地与网络上的图像或硬盘图像文件的链接一起工作。但是,如果选择了错误的图像源,由于明显的原因,图像不会显示。我可以做一个绑定来查看图像是否有有效的来源,或者如果来源不好,有没有办法放置默认图像。
ViewModel 中的属性:
public string ImageSource
{
get { return imageSource; }
set
{
imageSource = value;
NotifyPropertyChange("ImageSource");
}
}
Xaml:
<Image Grid.Row="0" Name="picture" Source="{Binding ImageSource}" Height="auto" Width="auto" MaxWidth="750" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" />
绑定工作正常。
【问题讨论】:
-
制作一个转换器,检查图像源是否有效,如果无效则返回默认值?
-
或者只是在公共财产的 setter 或 getter 处验证。
-
自定义转换器或简单添加到您的 getter:
get { if(!File.Exists(imageSource)) { return "default message"; } else { return imageSource; } }(只是一些快速伪代码,您必须为 Web 图像等提供替代逻辑) -
好吧,使用的图像源可以像现在一样在线或离线,我想我只需要检查它是否是正确的 Uri