我有一个ListBox
,其中包含大量的预览图像。当用户在图像上滚动时,图像是从Internet下载并本地缓存的。因此,使用AsyncPreview_120
绑定来下载图像并返回缓存文件的路径。如果失败,则使用自定义转换器根据文件名生成后备图像。
<Image.Source>
<PriorityBinding FallbackValue="{StaticResource DefaultImage}">
<Binding Path="AsyncPreview_120" IsAsync="True" />
<Binding Path="FileName" Converter="{StaticResource nameToImageSourceConverter}" IsAsync="True" />
</PriorityBinding>
</Image.Source>
在某些情况下,可能会发生预览下载失败的情况,例如由于没有互联网连接。当这按预期工作时,我的问题是绑定可以返回或抛出什么,这样我就不会从wpf得到警告或错误。
我尝试过:
null
NotSupportedException
DependencyProperty.UnsetValue
,但是全部导致错误或警告。绑定还有其他方式可以起作用,以便WPF将其视为某种“合法”情况并默默地继续前进吗?还是我可以使用更好的方法?
答案 0 :(得分:2)
使用Binding.DoNothing
Binding.DoNothing
绑定源属性或转换器可以返回Binding.DoNothing 指示绑定引擎不执行任何操作。例如, 指示绑定引擎不要将值传输到绑定 目标,不移动到PriorityBinding中的下一个Binding,或者不 使用FallBackValue或默认值。