! 제품 버전을 정확하게 입력해 주세요.
제품 버전이 정확하게 기재되어 있지 않은 경우,
최신 버전을 기준으로 안내 드리므로
더욱 빠르고 명확한 안내를 위해
제품 버전을 정확하게 입력해 주세요!

WinForms용 CollectionView 소개 > 블로그 & Tips

본문 바로가기

ComponentOne

블로그 & Tips

WinForms용 CollectionView 소개

페이지 정보

작성자 GrapeCity 작성일 2019-03-29 00:00 조회 5,554회 댓글 0건

본문

CollectionView는 데이터를 구성하는 데 매우 효과적인 컴포넌트입니다. CollectionView를 사용하면 기본 데이터 소스를 볼 수 있는 ICollectionView 인터페이스(원래 WPF의 일부)를 강력하게 구현할 수 있습니다. 데이터를 비동기적으로 필터링, 그룹화 및 정렬하는 방법을 제공합니다.


C1CollectionView는 ComponentOne for UWP에서 이미 사용 가능 하며 엄청난 인기를 바탕으로 ComponentOne Enterprise의 최신 릴리스에서도 WinForms 에디션으로 제공됩니다. 이제 데이터 인식 UI 컨트롤을 드래그앤드롭하여 CollectionView에 바인딩하고 그룹화, 필터링 및 정렬과 같은 항상 원해왔던 기능을 제공할 수 있습니다.


왜 C1CollectionView 를 사용해야 할까요?


WinForms의 데이터 수집은 정렬, 필터링 및 그룹화와 같은 기능을 지원하지 않습니다. 누락된 기능을 제공하기 위해 CollectionView가 이러한 데이터 콜렉션에서 래퍼 클래스로 작동합니다.


순서도


주요 특징들


  • 정렬, 필터링 및 그룹화

C1CollectionView 클래스 및 C1WrapCollectionView는 강력한 클래스이며 정렬, 필터링 및 그룹화와 같은 가장 원하는 기능을 지원합니다.

  • 현재 기록 관리

CollectionView에는 CurrentItem 속성과 CurrentPosition 메서드가 있어 항목과 위치를 각각 가져옵니다. 또한 현재 활성화된 항목을 변경할 수 있는 노출된 메서드가 많이 있습니다.

  • 비동기 연산

위의 메서드는 비동기적으로 작성되므로 병목 현상이 없습니다. 이를 통해 응용 프로그램의 전반적인 응답성이 향상됩니다.

  • 최적화 된 성능

CollectionView는 대규모 데이터 세트에서 정렬, 필터링 및 그룹화와 같은 데이터 변환을 수행하는 동안 높은 최적화를 가능하게 합니다.

  • 모든 데이터 기반 컨트롤과의 통합

CollectionView는 ICollectionView를 완전히 구현하므로 모든 데이터 인식 컨트롤이 이를 DataSource로 사용할 수 있습니다.

  • 성능을 향상시키는 증분 데이터 로드

스크롤하는 동안 성능을 최적화하기 위해 점진적으로 데이터를 로드합니다.

  • 쉽게 학습할 수 있습니다.

C1CollectionView는 WPF ICollectionView의 구현인 C1.CollectionView.ICollectionView를 구현하기 때문에 쉽게 학습할 수 있습니다.


WinForms 용 CollectionView : 사용 사례


CollectionView가 데이터 정리를 용이하게 하는 방법을 알아 보려면 YouTube 비디오 목록을 표시하는 시나리오를 생각해 보겠습니다. 비디오는 다양한 채널, 작성자, 카테고리 등에 속합니다. 시청자는 날짜, 채널 제목 ​​등과 같은 매개 변수로 비디오를 정렬하고 트렌딩 또는 채널 제목과 같은 관심 분야를 기준으로 그룹화 할 수 있어야 합니다. 또한 특정 비디오를 찾으려면 뷰어에 비디오를 필터링 할 수 있는 옵션이 있어야 합니다.


이 시나리오에서는 ListView가 유연하고 아이콘으로 목록 항목을 쉽게 표시 할 수 있기 때문에, 비디오 목록 표시를 위해 표준 ListView를 사용합니다.


그룹화, 정렬, 필터링


여기에서 각 비디오는 ListView 컨트롤의 목록 항목입니다. 목록은 채널 제목 ​​필드에서 그룹화되고 정렬됩니다. 또한 맨 위에 있는 텍스트 상자에 키워드를 입력하여 목록을 필터링할 수 있습니다.


CollectionView 시작하기


CollectionView를 통한 정렬, 필터링 및 그룹화 기능 추가는 다음과 같은 부분으로 나눌 수 있습니다.


  1. 필요한 어셈블리 추가
  2. CollectionView 생성 및 채우기
  3. 정렬, 필터 및 그룹 기능 추가

1. 필요한 어셈블리 추가

CollectionView는 UI가 아닌 컴포넌트이므로 Visual Studio의 ToolBox에서 찾을 수 없습니다. 따라서 이를 사용하기 위한 첫 번째 단계는 프로젝트에 C1.CollectionView 라이브러리를 추가하는  입니다. .NET 스타일 CollectionView와 연결할 모든 작업을 수행합니다.


그런 다음, WinBindings 컨트롤에서 사용할 수 있도록 IBindingList 인터페이스를 제공하는 다른 라이브러리 C1.Win.CollectionView 추가해야 합니다.


2. CollectionView 생성 및 채우기

CollectionView를 만들려면 C1.CollectionView 어셈블리에서 사용 가능한 C1CollectionView 클래스를 인스턴스화해야 합니다. 이 클래스는 데이터 소스를 가져 와서 필터링, 정렬 및 그룹화 작업을 가능하게 합니다.


여기서는 YouTube의 동영상 정보가 이미 데이터 세트에 저장되어 있다고 가정하겠습니다. 방법을 잘 모르신다면 MSDN을 참조하십시오.


ObservableCollection<YouTubeVideo> _videos;
C1CollectionView<YouTubeVideo> _collectionView = new C1CollectionView<YouTubeVideo>(_videos);


이제 CollectionView가 채워지고 UI 컨트롤을 바인딩할 준비가 되었습니다(여기서는 ListView). 이를 위해 ListView의 SetItemsSource 메서드를 사용합니다.


listView.SetItemsSource(_collectionView, "Title", "Thumbnail");

3. 정렬, 필터 및 그룹 기능 추가

CollectionView를 사용하여 그룹, 정렬 및 필터링 기능을 추가하는 것은 아주 쉽습니다.


  • 그룹화 : 가장 유용한 기능 중 하나이며 CollectionView를 사용하면 코드 한줄을 사용하여 기능을 추가할 수 있습니다.


채널에 따라 비디오를 그룹화하기 위해 CollectionView의 GroupAsync 메서드를 호출합니다. 이 방법에는 그룹 설명, 그룹 필드 등을 허용하는 다양한 오버로드가 있으며 요구 사항에 따라 하나를 선택할 수 있습니다.


await _collectionView.GroupAsync(v => v.ChannelTitle);

  • 정렬 : 항목을 정리하여 데이터를 보다 체계적으로 정리합니다. 채널에 따라 비디오를 정렬하려면 다음과 같이 정렬 경로 및 정렬 방향을 전달하는 SortAsync 메서드를 호출하십시오.

await _collectionView.SortAsync(v => v.ChannelTitle, direction == SortDirection.Ascending ? SortDirection.Descending : SortDirection.Ascending);

  • 필터링 : 큰 데이터 세트를 보는 동안 관심사를 기준으로 데이터 세트를 필터링하는 것이 일반적입니다. 특정 비디오를 찾으려면 TextBox와 같은 입력 컨트롤에 필터 문자열을 입력하고 TextChanged 이벤트에서 CollectionView의 FilterAsync 메서드를 호출하는 동안 이를 매개 변수로 전달하십시오.

private async void filterTextBox_TextChanged(object sender, EventArgs e)
{
        await _collectionView.FilterAsync(filterTextBox.Text);
}

GIF


CollectionView의 실제 그림은 여기에서 다운로드할 수 있습니다.

  • 페이스북으로 공유
  • 트위터로  공유
  • 링크 복사
  • 카카오톡으로 보내기

댓글목록

등록된 댓글이 없습니다.

메시어스 홈페이지를 통해 제품에 대해서 더 자세히 알아 보세요!
홈페이지 바로가기

태그1

메시어스 홈페이지를 통해 제품에 대해서 더 자세히 알아 보세요!
홈페이지 바로가기
이메일 : sales-kor@mescius.com | 전화 : 1670-0583 | 경기도 과천시 과천대로 7길 33, 디테크타워 B동 1107호 메시어스(주) 대표자 : 허경명 | 사업자등록번호 : 123-84-00981 | 통신판매업신고번호 : 2013-경기안양-00331 ⓒ 2024 MESCIUS inc. All rights reserved.