Привязка к DomainDataSource с помощью DataGrid в Silverlight 3

Используя разметку, я не могу получить данные для отображения в сетке:

<riacontrols:DomainDataSource x:Name="EstimatesData"  QueryName="GetUserEstimates" >
    <riacontrols:DomainDataSource.DataContext>
        <ds:MyDomainContext  /> 
    </riacontrols:DomainDataSource.DataContext>
</riacontrols:DomainDataSource>
<datagrid:DataGrid x:Name="EstimatesGrid" ItemsSource="{Binding ElementName=EstimatesData, Path=Data}" />

MyDomainContext имеет модель UserEstimates с методом GetUserEstimatesQuery.

Когда страница загружается, точка останова в GetUserEstimatesQuery не срабатывает, метод не вызывается. Ошибок нет, что я упускаю?

Если я пишу код при загрузке страницы, он связывается нормально.


person rotary_engine    schedule 12.01.2010    source источник
comment
Я должен добавить, что при отображении страницы не отображаются даже заголовки сетки.   -  person rotary_engine    schedule 13.01.2010


Ответы (3)


У меня такая же проблема. Я решил это, изменив:

<riacontrols:DomainDataSource.DataContext>

to

<riacontrols:DomainDataSource.DomainContext>
person Alexander Trofimov    schedule 20.08.2011

Забыл упомянуть, что модель взята из представления SQL. Я попробовал тот же подход, используя таблицу, и это сработало нормально. Проблема заключалась в том, что в модели не был определен правильный ключ для представления, в качестве ключа было установлено около 6 полей, которые по-прежнему не давали уникального значения.

Конечным решением было добавить поле в представление для использования в качестве ключа, заново создать модель, установить поле первичного ключа, и теперь данные отображаются так, как ожидалось.

person rotary_engine    schedule 13.01.2010

Вам нужно выполнить некоторую отладку использования DomainDataSource, чтобы увидеть, вызывает ли он вообще нагрузку. Попробуйте обработать событие LoadingData и LoadedData, чтобы увидеть, что происходит.

Здесь может быть дополнительная полезная информация: http://jeffhandley.com/archive/2009/11/19/domaindatasource-error-handling-again.aspx

Вы также можете попробовать вызвать AssessmentData.Load() в программном коде, чтобы узнать, поможет ли это решить вашу проблему.

person Jeff Handley    schedule 03.02.2010