嵌套属性上的Silverlight 4域数据源过滤器描述符

时间:2011-06-21 08:48:38

标签: silverlight ria domaindatasource

我有一个对象模型,我正在检查嵌套子属性的过滤值,例如

订单 - >客户

客户有一个属性,例如Name = "Joe Bloggs"

我的域名服务返回IQueryable<Order>。我的域数据源绑定到这个(反过来我的Grid绑定到域数据源),我有一个过滤器描述符设置如下:

<ria:FilterDescriptor Operator="Contains" Value="{Binding Text, ElementName=txtCustomerName}" PropertyPath="Customer.Name" IgnoredValue=""/>

这一切都很有效,除了Order和Customer之间的关系是可选的,即Order可能没有Customer,因此Customer导航属性可能为null。在这种情况下,运行查询时,域数据源会抛出一个空引用异常 - 大概是因为它试图遍历Customer并获取Name值,当然Customer是null。

有没有人想出这个问题的好方法?

1 个答案:

答案 0 :(得分:0)

我最终通过使用与DomainDataSource等效的MVVM - DomainCollectionView及其相关类来解决这个问题。有了这个,你可以更好地控制你的查询组合,因此我在查询Customer属性之前对我的查询进行了空检查。