Silverlight: подкачка данных с сервера - PullRequest
7 голосов
/ 09 августа 2011

У меня есть серверный API, который предоставляет выгружаемые данные в формате JSON на основе различных параметров запроса. Я хотел бы предоставить пользовательский интерфейс, который позволяет пользователю выполнять постраничный просмотр результатов запроса.

Мне известны различные компоненты, которые разрешают такой интерфейс, IPagedCollectionView и ICollectionView на рычаге модель / представление модели и DataPager в пользовательском интерфейсе. Однако во всех примерах, которые я видел, реализовано разбиение на страницы поверх данных, уже загруженных в модель или модель представления.

Я надеялся найти где-нибудь реализацию IPagedCollectionView, где вы просто подключаете свой метод 'fetcher', который выбирает данную страницу данных с сервера, плюс предоставляет немного метаданных (всего страниц и т. Д.)

Я мог бы написать это сам на основе интерфейсов IPagedCollectionView и ICollectionView, но я был бы удивлен, если бы не было стандартного решения этой проблемы.

Будем благодарны за любые ссылки на более подходящие части фреймворка или библиотеки, расширяющие фреймворк!

Ответы [ 2 ]

3 голосов
/ 09 августа 2011

У нас был тот же вопрос, и мы решили с новым DomainCollectionView, который является частью WCF RIA Services SP1.Что из этого означает, что вы должны использовать службы RIA, не знаю, если это опция.

DomainCollectionView (который уже реализует желаемый интерфейс IPagedCollectionView) поставляется в сочетании с DomainCollectionViewLoader, который можно использовать для выборкиданные для текущей страницы.

Для меня это сообщение в блоге Кайла Макселлана было очень полезным:

http://blogs.msdn.com/b/kylemc/archive/2010/12/02/introducing-an-mvvm-friendly-domaindatasource-the-domaincollectionview.aspx

[Обновить] Вы также можете найти этот пост в блоге полезным:

http://weblogs.asp.net/manishdalal/archive/2009/10/01/silverlight-3-custom-sorting-with-paging-support.aspx

Это пользовательская реализация интерфейса IPagedCollectionView.Мы используем его в одном месте, где мы собираем данные из разных источников данных, а DomainCollectionView неприменимо.

1 голос
/ 09 августа 2011

Вы можете попробовать службы данных WCF, которые, я полагаю, могут кормить json. у него есть API для «продолжения», которые являются эффективно постраничными запросами. Вам может показаться немного странным использовать это в качестве оболочки, но я уверен, что вы могли бы заставить его работать.

http://blogs.msdn.com/b/writingdata_services/archive/2011/02/25/getting-json-out-of-wcf-data-services.aspx

...