2014-12-30 4 views
0

저는 tblprofessionals와 연락처 (모든 전문가는 연락처, 연락처 보유자 이름, dob 등)의 조인 된 테이블을 반환하는 linq 쿼리를 가지고 있습니다. 전문가는 전문적인 데이터, 사이트, 부서 등을 보유하고 있습니다. .조인 된 테이블의 Displaymemberpath

var asdf = (from a in dbContext.tblProfessionals 
    join b in dbContext.contacts on a.contactId equals b.id 
    select a); 

그래서이해야 이론 반환 ID에, contactId의, profsite, profdept, FNAME, LNAME, 생년월일 등

내 질문입니다, 콤보 상자의 텍스트를 표시 할 displaymemberpath을 설정하는 방법 contacts.fname 또는 contacts.lname이 될 수 있습니다. 나는 단순히

DisplayMemberPath="contacts.firstname" 

을 퍼팅 시도했지만이 아무것도 할 분명히 FIRSTNAME이 tblProfessionals에 있지하지만 난 테이블에 합류했기 때문에 나에게 의미가이 오류

System.Windows.Data Error: 40 : BindingExpression path error: 'contacts' property not found on 'object' ''tblProfessional_1A2B2A1807FB8D48C805B985C726109DE29EF14983C5E9CE6564073CA9BB6C7F' (HashCode=54488246)'. BindingExpression:Path=contacts.firstname; DataItem='tblProfessional_1A2B2A1807FB8D48C805B985C726109DE29EF14983C5E9CE6564073CA9BB6C7F' (HashCode=54488246); target element is 'TextBlock' (Name=''); target property is 'Text' (type 'String') 

을 제공하지 않습니다 그래서 그것은 조인 된 테이블에 있어야합니다 ... 그래서 할 수 있다면, 어떻게 할 수 있습니까?

+0

이 시도 : -'DisplayMemberPath = –

+0

asdf.firstname' 저도 같은 오류 얻을 - BindingExpression 경로 오류 : 등 – sonnyJim

+0

좋아 방금 본 당신의 DS 개체를 찾을 수 없습니다 'asdf을'속성을 제대로, 나는'asdf.contact.firstname' 올바른 출력을 제공해야한다고 생각합니다. –

답변

1

당신은 교수자와 연락처에 참여하지만, asdf에는 오직 교수 (a) 만 넣습니다.

그래서 다음을 수행하십시오

var asdf = (from a in dbContext.tblProfessionals 
join b in dbContext.contacts on a.contactId equals b.id 
select new { ContactId = a.contactId, FirstName = b.firstname, LastName = b.lastname}); 

이제 변수 asdf에 익명 형식으로 연락처에서 PROFS 및 두 하나 개의 속성을 넣었습니다. 은 그럼 당신은 할 수 있습니다 :

cbProf.DisplayMemberPath = asdf.FirstName; 
+1

결국이 무언가와 함께 익명 형식을 만든 다음 Professionals 항목에 넣은 다음 Professionals.Name 필드와 함께 콤보 상자에 표시 할 목록에 넣고 DMP = "Name"을 설정했습니다. – sonnyJim

관련 문제