2009-09-08 4 views
3

DataGridView에 바인딩하는 EF 원본이 있습니다. 바인딩은 프로그래밍 방식으로 발생합니다. 그러나 정렬이 작동하지 않습니다.Windows DataGridView에 엔터티 바인딩

그래서 일부 코드를 엉망으로 만들고 확장 메서드를 만들기로 결정했지만 여전히 작동하지 않는 것처럼 보입니다.

public static class BindingListEntityExtension 
{ 
    public static BindingList<T> ToBindingList<T>(this IEnumerable<T> entities) 
    { 
     BindingList<T> rtn = new BindingList<T>(); 

     foreach (T obj in entities) 
     { 
      rtn.Add(obj); 
     } 

     return rtn; 
    } 
} 

아이디어가 있으십니까?

+0

불행히도'BindingList '은'IBindingList'의 매우 기본적인 구현이며, 정렬을 지원하지 않습니다 ... 그러나 당신은 그것으로부터 상속 받아 당신 자신의 정렬 로직을 제공 할 수 있습니다. Ecyrb –

+0

에 언급 된'SortableBindingList '을 살펴볼 수도 있습니다. 그래서 정렬을 구현하는 유형을 찾아야합니다. 흠. –

+0

알았습니다. 감사. –

답변

3

나는이 article에 걸쳐 SortableBindingList<T>에 달했다. 훌륭하게 작동합니다. 소스를 체크 아웃하여 확장 메소드를 작동시키는 법을 이해할 수 있습니다.

1

데이터 바인딩은 필터링 및 정렬을 위해 IBindingList 인터페이스를 사용하며이 인터페이스는 EF 소스로 구현되지 않습니다. 이 데이터 소스를 정렬하려면 IBindingList을 구현하는 래퍼를 만들어야합니다.

+0

아직 저를 위해 일하지 않습니다. –

관련 문제