c# listview 예제

c# listview 예제

Uncategorized -

이 문서에서는 ListView 컨트롤을 DataSet에 로드된 데이터로 채우는 방법을 보여 주며, 이 문서에서는 DataSet을 그리드 컨트롤에 바인딩하여 쿼리 의 출력을 표시할 수 있지만 컨트롤의 데이터 바인딩이 항상 데이터에 액세스하는 이상적인 방법은 아닙니다(DataBinding에 문제가 발생할 수 있음). DataSet은 행을 변경해야 하는 경우 클라이언트 시스템 메모리에서 전체 결과 집합의 복사본을 유지 관리합니다. 바인딩된 그리드와 DataSet을 사용하는 대신 세부 정보 모드로 설정된 뷰와 함께 listview 컨트롤을 사용하여 DataSet의 데이터로 채울 수 있습니다. ListView 컨트롤로 작업하는 경우 특정 열을 기반으로 해당 내용을 정렬할 수 있습니다. 이러한 종류의 기능의 예는 하드 디스크에서 폴더의 내용을 볼 때 Windows 탐색기 프로그램에서 발생합니다. 세부 정보 보기에서 Windows 탐색기는 해당 폴더의 파일에 대한 정보를 표시합니다. 예를 들어 파일 이름, 파일 크기, 파일 형식 및 파일이 수정된 날짜가 표시됩니다. 열 머리글 중 하나를 클릭하면 해당 열을 기준으로 목록이 오름차순으로 정렬됩니다. 동일한 열 헤더를 다시 클릭하면 열이 내림차순으로 정렬됩니다. 이 클래스는 `IComparer` 인터페이스의 구현입니다.

공용 클래스 ListViewItemComparer : IComparer { // 분류 할 열을 지정합니다 개인 int ColumnToSort; // 정렬할 순서를 지정합니다(예: `오름차순`). 개인 정렬 순서 order OrderOfSort; // 대/소문자 구분되지 않은 비교 개체 private CaseInsensitivecomparer 개체비교; 클래스 생성자, 다양한 요소 공개 리스트ViewComparer () { // 열을 `0` ColumnToSort = 0; // 정렬 순서를 `없음` OrderOfSort = SortOrder.None으로 초기화합니다. 개체비교 = 새 CaseInsensitivecomparer(); } // 이 메서드는 IComparer 인터페이스에서 상속됩니다. 대/소문자를 사용 하 여 전달 된 두 개체 // 구분 되지 않은 비교를 비교 합니다. // x: 비교할 첫 번째 개체 // y: 비교할 두 번째 개체 // // 비교의 결과. “0”이 같으면 ,// 음수인 경우 `x`가 `y`보다 낮고 // 양수인 경우 `y`가 `y` public int Compare(개체 x, 개체 y){int compareResult; 리스트뷰항목 리스트뷰X, 리스트뷰Y; ListViewItem 개체 listviewX = (ListViewItem)x에 비교할 객체를 캐스팅합니다. 목록보기Y = (리스트뷰항목)y; 대/소문자 구분 비교결과 = ObjectCompare.Compare (listviewX.SubItems[ColumnToSort]. 텍스트, listviewY.하위 항목[열토정렬]. 텍스트 ( (OrderOfSort == SortOrder.Ascending) { // 오름차순 정렬이 선택된 경우 개체 비교를 기준으로 올바른 반환 값을 계산합니다. 내림차순 정렬이 선택되고, 비교 작업 반환의 음수 결과를 반환합니다(-compareResult); } {// 반환 `0` 반환 동일한 반환 0; } //에 있는 열의 수를 가져옵니다 또는 정렬 작업을 적용합니다(기본값은 `0`). public int SortColumn { set { ColumnToSort = 값; } return ColumnToSort; } // // // 적용하기 위한 정렬 순서를 얻거나 설정합니다(예: `오름차순` 또는 `내림차순`).