문제

누구든지 다음을 구현하는 일반 컬렉션 클래스의 좋은 구현을 제안할 수 있습니까? IBindingListView & IBindingList 인터페이스하고 필터링 및 검색 기능을 제공합니까?

현재 옵션은 다음과 같습니다.

  • 다른 사람이 작성하고 테스트한 클래스 사용
  • 다음에서 상속 BindingList<T>, 그리고 구현 IBindingListView 인터페이스
  • 처음부터 사용자 정의 컬렉션을 작성하여 구현 IBindingListView 그리고 IBindingList.

분명히 첫 번째 옵션이 내가 선호하는 선택입니다.

도움이 되었습니까?

해결책

나는 몇 년 전의 오래된 MSDN 포럼 게시물에서 찾은 구현을 사용하고 구축했지만 최근에 다시 검색하여 다음과 같은 sourceforge 프로젝트를 발견했습니다. 바인딩목록보기.꽤 괜찮아 보이는데 아직 해킹된 버전을 교체하기 위해 가져오지 않았습니다.

너겟 패키지: Equin.ApplicationFramework.BindingListView

예제 코드:

var lst = new List<DemoClass>
{
    new DemoClass { Prop1 = "a", Prop2 = "b", Prop3 = "c" },
    new DemoClass { Prop1 = "a", Prop2 = "e", Prop3 = "f" },
    new DemoClass { Prop1 = "b", Prop2 = "h", Prop3 = "i" },
    new DemoClass { Prop1 = "b", Prop2 = "k", Prop3 = "l" }
};
dataGridView1.DataSource = new BindingListView<DemoClass>(lst);
// you can now sort by clicking the column headings 
//
// to filter the view...
var view = (BindingListView<DemoClass>)dataGridView1.DataSource;            
view.ApplyFilter(dc => dc.Prop1 == "a");

다른 팁

다음은 무대 뒤에서 방법 2와 3에 대한 도움이 있습니다.Windows Forms 데이터 바인딩을 위한 필터링 구현

http://www.microsoft.com/downloads/details.aspx?FamilyID=4af0c96d-61d5-4645-8961-b423318541b4&displaylang=en

내가 생각할 수 있는 몇 가지 해결책은 다음과 같습니다.

  1. 그만큼 서브소닉 프로젝트 꽤 좋은 구현이 있습니다 BindlingList<T> 이는 오픈 소스입니다.구현을 사용하려면 전체 SubSonic 바이너리를 사용해야 할 수도 있습니다.

  2. 나는 의 수업을 즐겨 사용합니다. 파워 컬렉션 프로젝트.기본 컬렉션 중 하나에서 상속하고 구현하는 것은 매우 간단합니다. IBindingListView.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top