2011-07-12 46 views
2

我有一个使用MVVM模式和DomainCollectionView对象的WCF RIA Services项目。 我应该可以将两个属性添加到源自EF DataModel的类中。属性仅在客户端添加并显示在数据网格中。 目前为止这么好。 当我试图通过点击两个额外的列标题之一来排序数据时,没有任何反应。 是否因为服务器对这些属性一无所知? 如果是这样,处理这种请求的最合适的方式是什么?客户端按ria服务中的客户端属性排序

回答

0

DomainCollectionView生成一个查询客户端,然后执行服务器端是正确的。因此,准备结果(可能包括实体)由服务器端数据库服务按照您的请求进行准备。然后将实体序列化并返回给客户端。

但是,一旦您的网格可视化,它会从您提供的源创建一个ICollectionView。这个接口允许客户端过滤和排序。

当有人点击网格中的一列时,网格(自动神奇地或通过代码或两者 - 取决于网格控件的供应商)将使用此接口对数据进行排序/过滤。

DomainCollectionview还允许分页,这限制了检索到网格中的数据量。并有助于将数据“块”带到客户端。没有人想要传输,然后在网格()中过滤1000条记录(更不用说100条记录)。如果有大量数据,请使用网格进行导航,然后使用详细信息表单来显示详细信息(在选择后获取详细信息)。

HTH, Richard

+1

感谢您的回复。你怎么可能知道哪个列已被点击以便在相应的属性中排列在客户端? – user759141

+0

是否有可能根据客户端属性使用DomainCollectionView对视图进行排序? – user759141

+1

看看这个主题。可以确定和操纵如何在DCV中应用排序,但这需要一些工作。 http://forums.silverlight.net/forums/p/230283/563748.aspx#563748 –