FlexGrid를 사용하여 WPF DataGrid를 필터링하는 방법에 대한 가이드
페이지 정보
작성자 GrapeCity 작성일 2021-10-21 13:59 조회 3,113회 댓글 0건본문
관련링크
유연한 WPF DataGrid인 FlexGrid는 데이터를 필터링하는 다양한 방법을 지원합니다. 이 블로그에서는 응용 프로그램에서 구현할 기능을 결정하는 데 도움이 되도록 지원되는 모든 필터링 기능을 살펴보겠습니다.
열 필터 – 열 헤더에서 검색 조건 설정
는 C1FlexGrid를 확장하여 Excel 스타일의 열 필터링을 제공합니다. 열 필터링이 활성화된 후 열 헤더를 마우스로 가리키면 열에 적용된 필터를 편집하는 데 사용할 수 있는 드롭다운 버튼이 표시됩니다.
필터는 다음 두 가지 모드를 지원합니다.
값 모드: 열에 있는 모든 값을 포함하는 목록이 편집기에 표시됩니다. 사용자는 목록을 사용하여 표시할 값을 하나 이상 선택할 수 있습니다.
조건 모드: 연산자와 비교 매개 변수(예: '보다 큼' 및 '2.5')로 구성된 두 가지 조건이 편집기에 표시됩니다. 조건은 'and' 또는 'or' 연산자로 결합됩니다.
이 유형의 필터는 데이터 입력 변형 옵션이 거의 없는 열에 적용할 때 특히 유용합니다. 예를 들어 FlexGrid에 이름, 색, 가격을 포함하는 제품 목록이 표시되는 경우 열을 선택하여 “가격” 열에서 설정된 금액보다 높은 가격의 항목만 표시하는 열 필터를 적용할 수 있습니다. “색” 열을 기준으로 특정 색의 제품만 표시하는 열 필터도 설정할 수 있습니다. 디자이너를 통해 또는 프로그래밍 방식으로 필터를 적용할 수 있습니다.
장점: 활용, 구현, 이해가 용이합니다.
단점: 개별 열 데이터를 기준으로 전체 데이터 집합 필터링만 가능합니다. “이름” 열과 같이 많은 고유 항목을 포함하는 열에 사용할 때는 유용하지 않습니다.
샘플 링크는 서 확인할 수 있습니다.
다운로드 링크는 서 확인할 수 있습니다.
행 필터 – 개별 열에서 키워드 검색
행 필터를 사용하면 원하는 형식의 조건을 기준으로 다양한 열의 필터링을 동시에 구현할 수 있습니다. 이렇게 하려면 데이터 집합 맨 위에 그 아래 항목의 필터링에 사용되는 추가 행이 있어야 합니다. 이 유형의 필터에서는 두 개 이상의 개별 열에 필터 조건을 동시에 설정하여 데이터 항목을 필터링할 수 있습니다. 예를 들어 두 가지 접두사로 두 개의 개별 열을 필터링하여 특정 데이터 집합을 쉽게 필터링할 수 있습니다.
장점: 위의 텍스트 상자를 사용하여 각 열에 필터를 적용할 수 있습니다. FilterEditor와 함께 사용하여 더 복잡한 필터를 적용할 수 있습니다. 사용하기 쉽도록 기본 제공되는 public 필드, 메서드, 속성을 포함하는 가 연결되어 있습니다.
단점: 다른 필터 클래스와 함께 사용하지 않을 경우 복잡한 필터링 기능이 제한될 수 있습니다.
샘플 링크는 서 확인할 수 있습니다.
* 참고: 이 샘플의 솔루션 파일은 할 수 있습니다.
다운로드 링크는 서 확인할 수 있습니다.
전체 텍스트 필터 – 모든 열에서 키워드 검색
전체 텍스트 필터에서는 사용자가 검색 중인 항목의 텍스트를 입력하여 특정 데이터 항목을 쉽게 찾을 수 있습니다. 그런 다음, 필터와 연결된 텍스트 상자에 입력된 용어를 전체 데이터 집합에서 검색합니다. 을 사용하여 전체 텍스트 필터를 필요에 따라 더 엄격하게 설정할 수 있습니다.
장점: 를 사용하여 검색 결과를 반환하기 위해 사용자 입력을 기준으로 그리드의 데이터 소스를 필터링합니다. 정확한 검색에 유용하고 필터를 더 엄격하게 만들 수 있는 “대/소문자 구분” 같은 속성이 있습니다. 정규식과 와일드카드 문자 같은 기타 필터 조작을 사용하여 사용자 요구 사항에 따라 매우 구체적인 사용자 정의 검색 필터를 만들 수 있습니다.
단점: 구현 중에 더 광범위한 코드를 작성하지 않고 OR 연산자 관계로 두 가지 필터를 적용할 수 없습니다. 필터는 기본적으로 FlexGrid의 데이터 소스에 적용됩니다.
샘플 링크는 서 확인할 수 있습니다.
다운로드 링크는 서 확인할 수 있습니다.
Datafilter – 함께 제공되는 사이드 메뉴를 통해 필터 선택
는 함께 제공되는 사이드 패널을 통해 그리드에 적용할 수 있는 미리 설정된 필터를 만들어 데이터 그리드를 빠르게 정렬하는 유용한 방법입니다. 사이드 패널 내에서 그리드에 적용할 필터 속성을 선택하기만 하면 됩니다. 한 번에 여러 필터를 적용할 수 있으며, 다시 클릭하거나 값을 제거하여 필터 선택을 쉽게 취소할 수 있습니다. 이 유형의 필터는 최종 사용자가 런타임에 필터링해야 하는 대규모 데이터 집합에 유용하며, 함께 제공되는 필터 UI를 통해 프로세스를 더 쉽게 수행할 수 있습니다.
장점: FlexGrid에 연결된 별도의 컨트롤 역할을 하며 사용자가 데이터에 적용할 필터를 클릭할 수 있도록 측면에 표시됩니다. 최종 사용자가 대규모 데이터 집합을 필터링할 수 있는 직관적인 방법입니다.
단점: 다른 필터 유형과 함께 사용하지 않을 경우 키워드 검색 같은 구체적인 사용자 정의 항목 필터링을 허용하지 않습니다. 필터의 UI와 로직을 설정하는 데 시간과 노력이 필요합니다.
샘플 링크는 서 확인할 수 있습니다.
다운로드 링크는 서 확인할 수 있습니다.
FilterEditor – AND/OR 로직 필터
에서는 사용자가 AND/OR 문으로 조건 연산자 로직을 적용하여 데이터 집합에 적용할 사용자 고유의 필터를 만들 수 있습니다. 이 클래스는 사용자가 조건식을 기준으로 필터를 설정할 수 있는 Microsoft CRM 필터 식과 비슷합니다. 이 유형의 필터는 두 개 이상의 조건 요구 사항 집합으로 데이터 집합을 필터링할 때 유용합니다. 최종 사용자가 조건 연산자를 통해 각 필터 조건 집합을 연결할 수 있기 때문입니다. FilterEditor 컨트롤은 필터를 트리 형태로 나타냅니다. 트리 노드는 논리 조건 "AND"와 "OR"이거나 데이터 소스 속성 필터일 수 있습니다.
장점: 필터 집합에 조건 연산자 로직 사용을 허용하며 바인딩되지 않은 그리드에서 사용할 수 있습니다.
단점: 구현하기가 더 어렵고, 최상의 결과를 얻으려면 개체 컬렉션에서 사용해야 합니다.
샘플 링크는 서 확인할 수 있습니다.
다운로드 링크는 서 확인할 수 있습니다.
사용자 정의 필터링 – 사용자 정의 아이콘 및 필터 디자인 추가
사용자 정의 필터링은 이름이 의미하는 것처럼 사용자가 원하는 셀 속성을 기준으로 고유한 필터링 옵션을 구체적으로 처리할 수 있는 방법입니다. 를 사용하여 사용자 정의 필터링을 구현합니다. 사용자 정의 필터를 사용할 경우의 명확한 장점은 최종 사용자가 이해하고 조작하기에 가장 쉬운 방식으로 특정 필터를 자유롭게 디자인할 수 있다는 것입니다. 그러나 이 유형의 필터로 필터링을 처리하려면 더 많은 수동 백그라운드 코드가 필요합니다. 사용자 정의 필터링의 몇 가지 예로 선택한 위치를 기준으로 필터링하는 대화형 맵이나 선택한 색을 기준으로 필터링하는 컬러 아이콘이 있습니다. 이 유형의 필터는 필터 디자인 프레젠테이션이 중요한 경우에 특히 유용합니다.
장점: 사용자 정의 성능이 뛰어나고, 개발자가 응용 프로그램을 어떻게 디자인하든 개방적이며, C1DataFilter 클래스를 통해 쉽게 구현할 수 있습니다.
단점: 필터 UI를 설정하려면 색, 아이콘, 맵, 디자인 등의 더 많은 백그라운드 코드가 필요합니다.
샘플 링크는 서 확인할 수 있습니다.
다운로드 링크는 서 확인할 수 있습니다.
지금 바로 ComponentOne을 다운로드하여 직접 테스트해보세요!
댓글목록
등록된 댓글이 없습니다.