FrameworkElement.Loaded метод для изображения в виртуализированном списке - PullRequest
0 голосов
/ 09 октября 2019

В моем ListView у меня есть изображение в моем шаблоне данных, который использует конвертер для загрузки изображения. Если загружаемое изображение не существует, конвертер загружает изображение-заполнитель. Затем в методе ImageE FrameworkElement.Loaded я создаю отсутствующее изображение, и оно отображается на экране асинхронно. Все отлично работает ... кроме одной вещи.

Загруженный метод, кажется, не вызывается для каждого отсутствующего изображения - что я могу сказать. И иногда он загружается с нулевым значением для DataContext - но только иногда? Иногда изображение для image1 загружается, например, для изображения 33.

Обычно происходит то, что для большинства отсутствующих изображений на экране они создаются и загружаются правильно, но затем он просто останавливается рядом сконец изображения на экране. Я полагаю, что это связано с тем, как виртуализация работает в uwp, так как этот же метод в приложении wpf с отключенной виртуализацией работает, как и ожидалось.

Итак, мой вопрос:

Как получить доступ к каждому изображению при загрузке в шаблон данных DataView ListView? Если Loaded - это неправильный метод, каким будет правильный?

1 Ответ

0 голосов
/ 09 октября 2019

Ответ заключается в использовании метода ImageOpened, когда я открываю изображение-заполнитель, если фактическое изображение не существует. Поэтому я проверяю в методе ImageOpened, что открытое изображение является заполнителем, и оттуда вызываю мой метод CreateImage.

...