Каков хороший способ создать MVVM DataPager в Silverlight 4? - PullRequest
2 голосов
/ 22 апреля 2011

Я хочу использовать DataPager с MVVM, но это нелегко. После поиска в Интернете есть два способа использования DataPager с MVVM в Silverlight.

  1. Представляем MVDM-дружественный DomainDataSource: DomainCollectionView ( сообщение об обновлении для Mix 11)
  2. Разработка LOB-приложений Silverlight (часть 6) - Создание инфраструктуры MVVM

Сейчас я использую метод # 1, но с ним есть некоторые проблемы, например, я не знаю, когда пользователь меняет страницу DataPager, тогда я не могу установить BusyIndicator IsBusy в true.

Я хочу знать, как можно использовать MVVM с DataPager?

1 Ответ

0 голосов
/ 16 июня 2011

DomainCollectionView, как вы упомянули в # 1, - это то, что я нашел.

DataPager привязан к вашему DomainCollectionView, поэтому все пользовательские команды на пейджере передаются. Это делается с помощью интерфейсов, которые реализует DomainCollectionView, в частности IPagedCollectionView, с которыми DataPager знает, как обращаться.

Всякий раз, когда DataPager требуется новая страница, он обновляет DomainCollectionView, который, в свою очередь, вызывает вашу функцию загрузки, которая настроена на DomainCollectionViewLoader. В статье, на которую вы ссылаетесь, приведены примеры того, как все это настроить.

В каком-то месте в настройке DomainCollectionView вы создадите свой DomainCollectionViewLoader примерно так:

... = new DomainCollectionViewLoader<Customer>(LoadCustomers, OnLoadCustomersCompleted);

В вашей функции LoadCustomers () вы можете начать показывать BusyIndicator, а когда срабатывает OnLoadCusomtersCompleted (), вы можете остановить его.

...