Silverlight 4 Entity Framework Привязать DataGridColumn к свойству навигации - PullRequest
1 голос
/ 14 июня 2011

Я использую EF4 и у меня есть объект в моей доменной модели, который называется Приложения. Приложения имеют свойство навигации, которое называется Статус. Статусный объект содержит 2 поля: StatusID и StatusName. Я отображаю DataGrid, который показывает детали приложений. Я украсил метаданные приложения атрибутом [Include], а также изменил GetApplicationsQuery, чтобы иметь оператор .Include ("status"). ItemsSource для сетки задается в коде с использованием запроса Linq.

Если я установил AutoGenerateColumns в моей DataGrid в значение true, столбец состояния указывает на наличие объекта состояния, поэтому похоже, что Включения работают правильно. Теперь я хочу установить для AutoGenerateColumns значение false и вручную построить сетку данных (чтобы показать только несколько столбцов), но не могу найти, как связать поле StatusName (принадлежащее свойству навигации по статусу) с одним из столбцов. Приведенный ниже код, очевидно, не работает, поскольку я эффективно связываю столбец Status с объектом, но как правильно связать поле с свойством навигации?

<telerik:GridViewDataColumn Header="App Name" DataMemberBinding="{Binding AppName}"/>
<telerik:GridViewDataColumn Header="Commentary" DataMemberBinding="{Binding Commentary}"/>
<telerik:GridViewDataColumn Header="Status" DataMemberBinding="{Binding **status**}"/>

Я пытался привязать к status.StatusName, но сейчас просто догадываюсь. Любая помощь будет оценена.

Спасибо

M

1 Ответ

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

Обнаружена проблема.

Вместо того, чтобы использовать запросы, определенные в DomainService (в данном случае GetApplicationsQuery), я использовал запрос Linq (из a в ctx.applications, где ..........).

В сгенерированном GetApplicationsQuery добавлены операторы .Include ("status"), но мой ручной запрос Linq этого не сделал.

Я установил свой DataGrid ItemsSource для использования GetApplicationsQuery(). Где (a => .... и я смог получить доступ к свойству навигации, используя имя из 2 частей, status.StatusName.

M

...