2009-08-28 3 views
2

DataSource가 익명 클래스 인 BindingSource의 현재 행 열을 선택할 수있는 방법이 있습니까?DataSource로 익명 클래스가있는 BindingSource의 열

var userResults = from u in dataContext.Users 
      join c in dataContext.Computers on u.ID equals c.UserID 
      where doSearch 
      && u.Name.Contains(userNameTextBox.Text) 
      && u.UserName.Contains(userUsernameTextBox.Text) 
      select new { u.Name, u.UserName, u.Branch, c.Installations, u.ID }; 
userBindingSource.DataSource = userResults; 

나는 u.ID의 현재 값을 얻을합니다.

+0

바인딩 원본이 어떤 컨트롤 유형에 바인딩되어 있습니까? –

+0

DataGridView 컨트롤에 바인딩됩니다. –

답변

2

BindingSource의 항목이 Object 유형이고 다시 익명 형식으로 변환해야한다는 것을 의미합니다. 실제로는 ... you can ("Casting to anonymous 유형 "섹션 참조)하지만 장래에는 작동하지 않을 수도있는 영리한 트릭입니다.

  • 은이 호텔 만
  • C# 4.0의 값을 얻기 위해 익명 형식 대신
  • 사용 반사 구체적인 유형을 사용 :

    기타 (더 나은) 옵션은 속성 값을 얻을 수 : 동적 키워드를 사용하여 필요한 속성 호출

  • 바운드 컨트롤에서 값 가져 오기 (예 : 데이터 소스가 DataGridView에 바인딩 된 경우 바인딩 원본 값 대신 datagridview 셀 값 가져 오기)
+0

그러나 .NET Framework가이 문제를 어떻게 해결합니까? 다른 BindingSource를 현재의 하위 목록에 바인딩하려면 문자열 속성 인'DataMember'를 설정해야합니다.이 멤버 변수가 어쩌면 익명 인 DataSource 객체에서 어떻게 해결 되었습니까? –

+1

내가 찾은 것부터 바운드 속성 값을 찾기 위해 리플렉션을 사용한다고 생각합니다. –

관련 문제