2011-06-14 6 views
1

저는 EF4를 사용하고 응용 프로그램이라는 도메인 모델의 엔티티가 있습니다. 응용 프로그램에는 Status라는 탐색 속성이 있습니다. 상태 엔티티에는 StatusID와 StatusName의 두 필드가 있습니다. 응용 프로그램의 세부 정보를 표시하는 DataGrid를 표시하고 있습니다. [Include] 속성을 사용하여 응용 프로그램 메타 데이터를 장식했으며 GetApplicationsQuery를 .Include ("status") 문으로 수정했습니다. 그리드의 ItemsSource는 Linq 쿼리를 사용하여 코드에서 설정됩니다.Silverlight 4 Entity Framework DataGridColumn을 탐색 속성에 바인딩

DataGrid에서 AutoGenerateColumns를 true로 설정하면 상태 열은 상태 개체가 있음을 나타내므로 포함이 올바르게 작동하는 것처럼 보입니다. 이제 AutoGenerateColumns를 false로 설정하고 (몇 개의 열만 표시하기 위해) DataGrid를 수동으로 만들지 만 상태 탐색 필드에 속한 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

답변

0

문제를 발견.

DomainService (이 경우 GetApplicationsQuery)에 정의 된 쿼리를 사용하는 대신 Linq 쿼리를 사용하고 있습니다 (ctx.applications에서 ..........).

생성 된 GetApplicationsQuery에는 .Include ("status") 문이 추가되었지만 수동 Linq 쿼리는 추가되지 않았습니다.

은 내가 GetApplicationsQuery(). (A => ... 그리고 난 다음, status.StatusName을 2 부분으로 된 이름을 사용하여 탐색 속성에 액세스 할 수 있었다.

M을 사용하여 내 데이터 그리드 ItemsSource을 설정