【问题标题】:What is the good way to create MVVM DataPager in Silverlight 4?在 Silverlight 4 中创建 MVVM DataPager 的好方法是什么?
【发布时间】:2011-08-11 01:33:39
【问题描述】:

我想将 DataPager 与 MVVM 一起使用,但这并不容易。在网上搜索后,有两种方法可以在 Silverlight 中使用 DataPager 和 MVVM。

  1. Introducing An MVVM-Friendly DomainDataSource: The DomainCollectionViewupdate post 用于混合 11)
  2. Architecting Silverlight LOB applications (Part 6) – Building an MVVM Framework

现在我使用方法#1,但它存在一些问题,例如,我不知道用户何时更改 DataPager 的页面,然后我无法将 BusyIndi​​cator IsBusy 设置为 true。

我想知道,用 DataPager 使用 MVVM 有什么好方法?

【问题讨论】:

  • DataPager 的 DataSource 是否绑定到 DomainDataSource 的 Data?那么如果你将 BusyIndi​​cator 的 IsBusy 绑定到 DomainDataSource 的 IsBusy 上,它会起作用吗?

标签: silverlight silverlight-4.0 mvvm datapager


【解决方案1】:

DomainCollectionView,正如您在 #1 中提到的,是我找到的方式。

DataPager 绑定到您的 DomainCollectionView,因此所有用户在寻呼机上的命令都会被传递。这是通过 DomainCollectionView 实现的接口完成的,特别是 IPagedCollectionView,DataPager 知道如何处理。

每当 DataPager 需要一个新页面时,它都会更新 DomainCollectionView,这又会调用您在 DomainCollectionViewLoader 上设置的加载函数。您链接的文章提供了所有设置的示例。

在 DomainCollectionView 设置的某个地方,您将创建您的 DomainCollectionViewLoader,如下所示:

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

在您的函数 LoadCustomers() 中,您可以开始显示 BusyIndi​​cator,当 OnLoadCusomtersCompleted() 被命中时,您可以停止它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-08-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多