2014-10-29 6 views
0

WPF DataGrid 및 .Net 4.5를 사용하고 있으며 대규모 컬렉션을 위해 자체 데이터 가상화 컨테이너를 롤업하려고합니다. 필자는 웹 전반에 걸쳐 데이터 가상화를 구현하는 방법에 대한 많은 유용한 예제를 발견했지만, 필자가 보았던 모든 예에서 그룹화를하면 절약 효과가 사라집니다. 내 그룹은 간단하고 정적입니다. 내 컬렉션이 모든 항목을 미리 열거 할 필요가없는 방식으로 WPF에서 그룹화를 위조하는 방법이 있습니까? 예를 들어 누구나 ListCollectionViewGetItemAt()을 무시하고 각 그룹의 시작 부분에 CollectionViewGroup 개체를 방금 반환 했습니까?그룹화를 포함하는 사용자 지정 (플랫) 컬렉션은 어떻게 만듭니 까?

콘크리트 예 :

  1. 말은 예를 들어 내가 100K 기록이있는 데이터베이스가 있습니다. Bea Stollnitz' example과 비슷한 데이터 가상화 컬렉션을 만들고 WPF DataGrid에서 사용하고 싶습니다.
  2. 필드에서 DataGrid의 항목을 그룹화하려고하지만 데이터베이스 쿼리를 수정하여 먼저 그룹 A의 모든 항목을 반환 한 다음 그룹 B의 모든 항목을 반환하도록 할 수 있습니다. 그룹화는 DataTable이보기도 전에 완료됩니다 .
  3. 내 컬렉션 (DataGrid의 관점에서 볼 때)이 평평하더라도 WPF DataGrid 내의 그룹을 시각적으로 어떻게 나타내나요? DataGrid에서 그룹화를 표시하는 유일한 방법은 CollectionView 또는 이와 유사한 방법을 사용하는 것입니다.

.

+0

그래서 나는 마침내 (3 일간의 검색 후) 실행 가능한 대답을 발견했다고 생각합니다. [이 링크] (http://blog.smoura.com/wpf-toolkit-datagrid-part-iv-templatecolumns-and -row-grouping /) from [StackOverflow] (http://stackoverflow.com/a/7000681/999613). 'ViewModel의 도움을 받아 가짜 그룹화 '섹션은 특히 유용했습니다. – millejos

답변

1

플랫 목록 및 정적 그룹화 목록을 처리하고 집계와 관련된 성능이 걱정되는 경우 색인에 두 버전의 데이터 집합을 저장하고 각 특정 데이터 집합에 필요한 데이터 만 가져 오는 것이 좋습니다. 케이스.

관련 문제