Я создаю приложение FlippingBook Silverlight и столкнулся с проблемой, которую, похоже, не могу решить.
Проблема связана с асинхронно загружаемыми изображениями. Я написал класс, который загружает изображение из веб-адреса и сохраняет его в объекте BitmapImage.
Я привязываю к этому объекту изображения источник изображения в элементе управления Silverlight.
Теперь моя страница и миниатюра имеют доступ к одному и тому же свойству ImageData, в котором хранятся данные изображений.
Список миниатюр - это список, стилизованный под просмотрщик миниатюр.
И книга, и список тоже имеют один и тот же источник предметов, поэтому проблемы меня смущают.
Все работает с изображениями, загружаемыми в фоновом режиме и обновляющими пользовательский интерфейс после их загрузки ... ЗА ИСКЛЮЧЕНИЕМ первых 3 (и всегда первых 3) элементов в списке миниатюр никогда не отображаются изображения.
Это изображение, иллюстрирующее пользовательский интерфейс и проблему:
альтернативный текст http://www.pcbuyersguide.co.za/picture.php?albumid=19&pictureid=895
Изображение для привязки кода на странице:
<Image Source="{Binding ImageData}" Stretch="Fill" ImageFailed="Image_ImageFailed"/>
Изображение привязки кода на миниатюре (в стиле ListboxItem):
<Image Stretch="Fill" Source="{Binding ImageData}"/>
Свойство:
public BitmapImage ImageData
{
get { return oImageData; }
set
{
if (value != this.oImageData)
{
this.oImageData = value;
NotifyPropertyChanged("ImageData");
}
}
}
Я проверил с изображениями, которые загружаются долго, и все это работает, но только эти первые 3, которые дают мне ад. Я не понимаю, так как предметы связаны и должны фактически быть одинаковыми.
ItemSource является наблюдаемой коллекцией. Я знаю, что не дал много информации, но я хочу попытаться сфокусировать свой вопрос. Если вам нужна дополнительная информация, я буду рад предоставить ее.
Любая помощь будет принята с благодарностью.