OData를 사용하여 WinForms용 FlexGrid에 데이터 시각화 적용하기
페이지 정보
작성자 GrapeCity 작성일 2020-06-15 00:00 조회 6,236회 댓글 0건본문
관련링크
ComponentOne 2020 V1 릴리스는 새로운 데이터 관련 서비스 컴포넌트인 DataConnectors 및 DataCollection를 포함하고 있습니다.
DataConnectors는 OData 및 Dynamics 365와 같이 널리 사용되는 데이터 소스에 연결하기 위한 크로스 플랫폼 데이터 연결 라이브러리입니다. DataCollection은 데이터 필터링, 정렬 및 그룹화를 지원하는 크로스 플랫폼 데이터 바인딩 라이브러리입니다.
이러한 데이터 조작 기능과 함께 DataCollection은 대용량 데이터 세트를 증분로드 할 수 있도록 데이터 가상화를 지원 합니다.
이 게시물에서는 이러한 두 서비스 컴포넌트를 통합하여 데이터 가상화를 OData 서비스와 함께 사용하고 FlexGrid for WinForms 와 같은 데이터 인식 컨트롤에 바인딩하는 방법을 보여줍니다.
다음 단계를 사용하여 애플리케이션을 작성합니다.
- 필요한 NuGet 패키지를 설치합니다.
- C1AdoNetVirtualDataCollection을 사용하여 OData 웹 API 서비스에 연결합니다.
- C1AdoNetVirtualDataCollection을 사용하여 FlexGrid에 바인딩합니다.
1단계 : 필요한 NuGet 패키지 설치
WinForms 프로젝트를 만들고 다음 NuGet 패키지를 설치합니다.
- C1.AdoNet.OData
- C1.DataCollection.AdoNet
- C1.DataCollection.BindingList
NuGet 패키지를 추가하려면 'Solution Explorer'창에서 'References' 노드를 마우스 오른쪽 단추로 클릭하고 'Manage NuGet Packages'를 선택하십시오.
2단계 : C1AdoNetVirtualDataCollection을 사용하여 OData 웹 API 서비스에 연결하기
DataCollection 서비스 라이브러리는 페이징을 구현하는 기본 클래스 C1VirtualDataCollection을 제공합니다 . 이 클래스에는 컬렉션을 채울 항목을 반환하기 위해 구현해야 하는 추상 메서드 GetPageAsync가 있습니다.
라이브러리는 다음과 같은 클래스도 제공합니다.
이 클래스는 필요한 모든 메소드를 구현하므로 애플리케이션에서 직접 사용할 수 있습니다. C1VirtualDataCollection에 의해 노출된 속성을 사용하여 가상화 조작을 제어할 수 있습니다.
다음 옵션을 사용하여 C1VirtualDataCollection 객체를 구성 할 수 있습니다.
가상화 모드 :
이 모드는 가상 데이터 수집에서 데이터가 로드되는 방법을 정의합니다.
- 자동 (기본 옵션) : 항목에 액세스 할 때 데이터를 로드합니다
- 수동 : LoadAsync 메서드를 호출하여 데이터를 로드합니다.
페이지 크기:
각 페치 요청에서 요청된 행 수를 결정합니다.
이 예에서는 Northwind OData Web API를 사용하고 Orders 테이블에서 레코드를 가져옵니다.
string connectionString = @"Url=https://services.odata.org/Experimental/Northwind/Northwind.svc/";
var odataConnection = new C1ODataConnection(connectionString);
var collectionView = new C1AdoNetVirtualDataCollection<Order>(odataConnection, "Orders");
collectionView.PageSize = 100;
generic 클래스 C1AdoNetVirtualDataCollection<T>
를 사용하여 데이터
소스에서 강력한 형식의 레코드를 가져옵니다. non-generic 클래스 C1AdoNetVirtualDataCollection을 사용하면 런타임시 레코드에 적절한 유형을 만들 수 있습니다
( 'ItemType' 속성 에서
정보 유형에 액세스 할 수 있음)
3 단계 : C1AdoNetVirtualDataCollection을 사용하여 C1FlexGrid 바인딩하기
가상 데이터 수집 객체를 C1DataCollectionBindingList에 감싸서 FlexGrid의 인스턴스에 바인딩합니다.
_flexGrid.BeginInvoke(new MethodInvoker(() =>
{
_flexGrid.DataSource = new C1DataCollectionBindingList(collectionView);
_flexGrid.AllowFiltering = true;
}));
데이터 콜렉션이 다른 스레드에 채워지므로 FlexSource의 BeginInvoke 메소드를 사용하여 데이터 소스 변경에 대한 스레드 간 예외를 피하십시오.
샘플을 실행합니다. 그리드에는 처음에 100개의 행이 있습니다 (PageSize 속성을 사용하여 구성). 아래로 스크롤하면 더 많은 데이터를 자동으로 가져옵니다.
DataCollection 및 DataConnector에 대한 자세한 내용은 여기를 참조하십시오.
댓글목록
등록된 댓글이 없습니다.