2011-04-27 5 views
0

저는 항상 눈에 보이는 각 셀에 대해 실행되는 해당 그리드의 재정의를 기반으로 작동하는 Syncfusion 가상 그리드를 사용하고 있습니다! 그것은 나에게 행과 열 및 셀의 값, 서식, 색상 등을 설정할 수있는 셀 객체에 대한 정보를 제공합니다.WPF DataGrid가 표시 될 때 셀을 채우는 중

이렇게하면 대용량 데이터 세트 매우 빠르게 스크롤 할 수 있습니다. DataSet.Tables [0] .Rows [1000000] [ "LastName"]과 같은 값을 '읽어야합니다.'ToString()

WPF DataGrid에서 비슷한 항목이 있습니까? 내가 가상화에 대해 알고 당신이 등을 그룹화 할 그룹과 테스트를 실행하고있는 경우는 그 자체를 꺼 것을 자체 내 그리드 초크를 만든 20,000
행의 데이터 집합을 통해 활성화 -

편집 나 자신을 명확하게 할 필요가 . 그러므로 내 이전 질문은 스스로를지지합니다! 격자를 사용하여 텍스트를 채우고 일부 재정의 또는 콜백을 통해 서식을 지정할 수 있습니까?

감사

답변

1

데이터 격자는 기본적으로 가상화를 사용합니다. 이는 즉시 작성 및 삭제하거나 보이는 셀을 재활용하고 현재 행의 데이터로 다시 채우는 방식으로 작동합니다. 이것은 'VirtualizingStackPanel.VirtualizationMode'속성으로 재생하여 조정할 수있을뿐 아니라 해제 할 수 있으며 여러 상황에서 강제로 해제됩니다 (그룹화가 좋은 예입니다). 이 가상화는 신의와 저주가 될 수 있습니다. 간단한 요구 사항 집합을 가지고 있다면 좋은 성능을 얻기가 쉽지 않습니다. 반면에 트리거 및 사용자 정의 열을 포함하여 복잡한 런타임 바인딩을 수행하는 경우에는 약간의 악몽이됩니다. 빠른 응답

http://msdn.microsoft.com/en-us/library/cc716879.aspx

http://msdn.microsoft.com/en-us/library/system.windows.controls.virtualizingstackpanel.aspx

+0

감사하지만 무슨 의미가 아니다 - 내가 위에서 내 질문을 편집 한 :

중요한 몇 읽습니다. 나는 그 대답이 실망 스럽다는 것을 알고 있다고 믿습니다. 실망 스러울 것입니다. 그렇지만 나는 많은 데이터를 가진 DataGrid가 본질적으로 느리다는 사실을 받아 들여야합니다. (기본) 가상화가 가능합니다! – Marcel

+0

@Marcel, x [100000] .name.tostring() 값을 읽는 것이 재활용 된 가상화가 수행하는 작업과 정확히 일치하므로 잘못된 질문을 한 것 같습니다. 그룹화 된 데이터의 가상화가 필요한 경우 DataGrid가 도움이되지 않습니다. 반면에 x [100000] 자체에 액세스하는 속도라면 데이터 가상화 문제가 될 수 있습니다. 흥미로운 주제의 PDF는 다음과 같습니다. http://bea.stollnitz.com/files/52/DataVirtualization.pdf –

+1

다시 감사드립니다. 25,000 개가 넘는 행이있을 때 세로 스크롤 막대를 드래그하면 지연이 생깁니다. 가상화 된 DataGrid. 지금은 많이 있지만 내 상사는 백만 줄 이상의 스크롤에 완벽하게 대처할 수있는 Excel의 속도와 완벽하게 맞지 않는다는 사실에 짜증을냅니다! – Marcel

관련 문제