У меня есть ListBox
, который содержит большой список изображений для предварительного просмотра.Изображения загружаются из Интернета и кэшируются локально, когда пользователь прокручивает их.Для этого используется привязка 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>
В некоторых случаях может произойти сбой при загрузке предварительного просмотра, например, из-за отсутствия подключения к Интернету.Хотя это работает, как и ожидалось, мой вопрос заключается в том, что Binding может вернуть или выдать, чтобы я не получил предупреждение или ошибку от wpf.
Я пытался:
- Возврат
null
- Возврат пустой строки
- Бросок
NotSupportedException
- Возврат
DependencyProperty.UnsetValue
, но все это привело к ошибкам или предупреждениям.Есть ли другой способ, которым привязка могла бы вести себя так, чтобы WPF воспринимал это как некую «законную» ситуацию и молча шел дальше?Или есть какой-нибудь лучший подход, который я мог бы использовать?