Дескриптор фильтра источника данных домена Silverlight 4 для вложенного свойства - PullRequest
1 голос
/ 21 июня 2011

У меня есть объектная модель, где я проверяю значение фильтра вложенного дочернего свойства, например,

Заказ -> Заказчик

И у Клиента есть свойство, например Name = "Joe Bloggs"

Служба моего домена возвращает IQueryable<Order>. Мой источник данных домена привязан к этому (и, в свою очередь, моя таблица привязана к источнику данных домена), и у меня есть дескриптор фильтра, установленный примерно так:

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

Все это прекрасно работает, за исключением того, что отношения между Заказом и Клиентом являются необязательными, т. Е. У Заказа может не быть Клиента, и поэтому свойство навигации Клиента может быть нулевым. В такой ситуации при выполнении запроса источник данных домена выдает исключение нулевой ссылки - возможно, потому, что он пытается пройти по клиенту и получить значение имени, когда, конечно, клиент равен нулю.

Кто-нибудь придумал хорошее решение этой проблемы?

1 Ответ

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

В итоге я решил эту проблему с помощью MVVM, эквивалентного DomainDataSource - DomainCollectionView и связанных с ним классов. Благодаря этому вы получаете больше контроля над составом запроса, и поэтому я сделал свой запрос на нулевую проверку свойства Customer перед оценкой свойства Name в нем.

...