2012-07-07 2 views
3

.NET 4 WPF DataGrid를 사용하고 있으며 많은 수의 열을 사용하는 경우 수직 스크롤링 성능이 좋지 않습니다. 여기에 내가이 테스트 한 것입니다 :WPF .NET 4 DataGrid 열 성능

  1. 가상화 (VirtualizingStackPanel.IsVirtualizing = "참"VirtualizingStackPanel.VirtualizationMode = "재활용")를 사용
  2. 퍼가 간단한 그리드 레이아웃에 데이터 그리드 및 다른 컨트롤이 없다 이 창에서
  3. 열에는 사용자 지정 서식이없고 이미지가 없습니다 - 단순한 텍스트
  4. 꽤 좋은 컴퓨터에서 실행되고 있습니다. WIN7 (64 비트) 8 기가 바이트 램 및 천공기와
  5. 테스트는 소프트웨어 렌더링과 같은 나쁜 아무것도 표시되지 않습니다 라데온 7800 시리즈 카드 쿼드 코어 3.2gz에 등 여기

은 어떤 결과 :

  • 100 행 × 5 COLS : 스무스
  • 스크롤
  • 10 행 × 5 COLS : 아주 나쁨 스크롤 성능
  • 1 : 스무스
  • 100 행 X 75 COLS 스크롤 00,000 행 x 75 cols : 완전히 고정

많은 열 (~ 75 - 100)이있을 때 수직 스크롤링 성능을 향상 시키려면 어떻게해야합니까?

감사

당신은 매우 중요한 두 가지 속성 누락
+0

75 개의 열이 의미가 있으며, 심지어 완벽하게 작동합니까? 기본적으로 중요한 열만 사용하고 사용자의 요청에 따라 표시 될 수있는 그리드 측면의 확인란으로 선택 열의 사전 순 정렬 된 목록을 표시하는 것이 좋습니다. – doblak

답변

5

:

이 둘을 활성화하고 볼 사실입니다 - 기본 값은

  • EnableRowVirtualization이 거짓을 차이가 있다면. 도움이 될 것입니다.

    약 2,500 행의 열이 약 20 개 정도 있고 성능 문제가 보이지 않지만 75 열은 분명히 많이 보입니다. 헤더의 열 활성화/비활성화 (Excel과 유사)를 추가하는 방법을 조사 할 수 있습니다.

  • +0

    고맙습니다. 이 두 속성은 많은 도움이되었습니다. 가상화 스택 패널을 비활성화하고이 두 속성을 활성화하면 큰 차이가있었습니다. 이제 75 열 x 10,000 행을 관리 할 수있게되었습니다. 내 앱은 탁월한 앱이며 사용자는 일반적으로 총 300 개 중에서 75 - 150 개 열을 선택합니다. 여러 개의 모니터에서 앱을 확장합니다. 따라서이 예제는 실제로 실제 시나리오입니다. 이 변경 사항은 최대 90 열까지 사용할 수 있습니다. 궁금해 할 일이 있다면 제가 150을 위해 일할 수있는 방법이 있습니다. 당신의 도움을 주셔서 감사합니다 – Rhino

    +0

    @Rhino, 나는 같은 상황에 처해 있습니다. EnableColumnVirtualization = "True"EnableRowVirtualization = "True"VirtualizingStackPanel.IsVirtualizing = " 거짓 "? 제 경우에는 거의 멈추고, 매우 느리게 스크롤합니다. –

    +0

    답장을 위해 @ daub815에 감사드립니다.하지만 "창에 대해 가상화하는 스택 패널을 끄십시오"는 의미는 무엇입니까? itempanel을 stackpanel으로 변경하여 가상화 된 onr을 기대 하시겠습니까? –