2013-12-09 2 views
0

Ниже приведен один экран моего приложения, в котором загружено около 100 элементов для каждого поиска на сервере (WCF).Массовые данные с изображениями в LongListSelector

enter image description here

У меня есть два вопроса.

One: В настоящее время я назначаю все результирующие элементы itemssource селектора длинного списка, но хочу загрузить изначально 10 элементов, а когда пользователь проскальзывает до почти конца, он загружает еще 10. видели это поведение во многих приложениях (foursquare), но не могли понять, потому что я новичок в Silverlight.

2: Если у товара есть изображение, тогда PicturePath настроен на путь к образцу сервера, иначе локальный путь отсутствия изображения установлен. Проблема в том, что при загрузке изображения область изображения отображается пустой, пока она полностью не загрузится, а затем начнет показывать изображения, мне нужно, чтобы это было что-то вроде четырехстрочных шоу, пока изображение не будет полностью загружено. Ниже приведен мой код привязки вместе с моим требованием.

enter image description here enter image description here

Спасибо.

+0

Это два отдельных вопроса и их следует задать отдельно. –

ответ

0

Не имеет смысла отвечать на оба вопроса кучей кода.

Что касается первого вопроса, вам нужен способ обнаружения, когда пользователь прокручивается в нижней части списка ListBox/LongListSelector. Вам нужно использовать ObservableCollection вместо простого списка, потому что ObservableCollection уведомляет пользовательский интерфейс, когда к нему добавляются новые элементы.

Этот вопрос был задан несколько раз раньше, for example see here.

Что касается второго вопроса, самым простым решением было бы использовать два изображения, один поверх другого внутри ItemTemplate. Таким образом, статическое локальное изображение будет отображаться, пока динамический пуст, а когда динамический загружается, он будет покрывать статический. Он отображается поверх статического изображения, так что статическое изображение не было.

<Grid> 
    <Image Source="Assets/StaticImageFromLocalCache.jpg" Width="400" Height="400" /> 
    <Image Source="Assets/DynamicImageFetchedFromInternet.jpg" Width="400" Height="400" /> 
</Grid>