또는이 목적으로 타사 컨트롤이 더 적합합니까?C# Windows 응용 프로그램의 데이터 격자보기에 65,535 개 이상의 열을 추가하는 방법은 무엇입니까?
답변
이론적으로 DevExpress XtraGrid은 그리드의 Int32.MaxValue 행 또는 열을 지원한다는 것을 알고 있습니다. 이 경우 한계는 그리드가 아닌 시스템 메모리입니다.
하지만 실제로 많은 양의 데이터를 표시해야합니까?
+1 타사 옵션에 대한 질문 및 제기 이유 – curtisk
짧은 대답 : 해달라고!
답변 : FillWeight를 10 이하로 변경하십시오 (기본값은 100). 도달 한계는 총 FillWeight가 64K x 100을 초과하여 발생합니다 (누가 한계인지 아는 사람).
가상 목록을 사용하십시오 (보이는 행만로드). 나는 WinForms ListView가 가상 모드를 가지고 있지만 WPF는 그렇지 못하다.
그래서 WPF 사용자 정의 컨트롤을 만들고 VirtualMode = True로 설정하고 ElementHost 컨테이너로 WinForms 클라이언트에서이 사용자 정의 컨트롤을 호스팅하십시오.
죄송합니다. 더 구체적으로 말할 수는 없지만, 손을 쓸 코드가 없습니다.
라이언
WPF에 대한 Xceed의 데이터 그리드는 쉽게 할 모두 열 및 UI 가상화를 사용 할 수 있습니다. 라이브 데모를 확인하십시오. perf를 테스트하는 데 필요한만큼의 열과 행으로 데모를 채울 수 있습니다. http://xceed.com/Grid_WPF_Demo.html
FillWeight 변수가 정수가 아닌 부동 소수점 숫자를 사용하므로 0.5f 또는 0.01f가됩니다 (이론적으로 최대 6553500 열 허용). 불행히도, 창조는 매우 느립니다. (적어도 저에게는 1000 컬럼이 지나면 10,000 컬럼이 약 20 초 걸립니다.) 아마도 다른 사람들이 제안한 VirtualMode는 가치가 있습니다.
빈 셀의 x 크기 표를 만드는 데 사용하는 코드는 다음과 같습니다. 아마도 다른 사람이 속도를 더욱 최적화 할 수 있습니다.
private void createDGVcells(DataGridView dgv, int columns, int rows) {
// Optimization:
dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.DisableResizing; // Massive speed up if high column count
dgv.ScrollBars = ScrollBars.None; // Apx. 75% speedup for high row count
dgv.AllowUserToAddRows = false; // Further 50% apx speedup when creating rows
dgv.ReadOnly = true; // Small apx. 50ms latency speedup?
// First clear any existing cells, should they exist:
if (dgv.DataSource != null) dgv.DataSource = null;
else {
dgv.Rows.Clear();
dgv.Columns.Clear();
}
// Create the first row (the columns):
DataGridViewColumn[] dgvc = new DataGridViewColumn[columns];
for (int i = 0; i < dgvc.Length; ++i) {
DataGridViewColumn dg = new DataGridViewTextBoxColumn();
dg.FillWeight = 0.1f; // Allows up to 655350 columns in theory
dgvc[i] = dg;
}
dgv.Columns.AddRange(dgvc);
// Add all the rows (very quick)
for (int j = 0; j < rows - 1; j++) dgv.Rows.Add();
// Optional to turn these back on
dgv.ReadOnly = false;
dgv.AllowUserToAddRows = true;
dgv.ScrollBars = ScrollBars.Both;
dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing;
}
- 1. 1024 개 이상의 열을 추가하는 방법 SQL Server
- 2. ipad monotouch 응용 프로그램에서 둘 이상의 열을 추가하는 방법은 무엇입니까?
- 3. C#의 격자보기에 암호 필드를 추가하는 방법
- 4. 두 개 이상의 파일을 추가하는 항목 템플릿을 만드는 방법은 무엇입니까?
- 5. C# Windows Forms 응용 프로그램의 데이터 저장/액세스
- 6. uiscrollview에서 100 개 이상의 uiimageviews를 추가하는 방법
- 7. C# Windows 응용 프로그램의 Mediaplayer
- 8. 열을 행렬에 추가하는 방법은 무엇입니까?
- 9. Windows 폼을 응용 프로그램의 기본 폼으로 설정하는 방법은 무엇입니까? C#
- 10. .net Windows 응용 프로그램의 '프로그램 추가/제거'항목을 추가하는 방법
- 11. C# 응용 프로그램의 데이터 저장
- 12. C#을 사용하여 ListBox에서 두 개 이상의 열을 만드는 방법은 무엇입니까?
- 13. C#을 사용하여 Open Office Calc 시트에 256 개 이상의 열을 삽입하는 방법은 무엇입니까?
- 14. Google 애플리케이션 엔진에 put()을 사용하여 데이터 저장소에 500 개 이상의 항목을 추가하는 방법은 무엇입니까?
- 15. Windows Phone 7의 목록 컨트롤에 열을 추가하는 방법은 무엇입니까?
- 16. DataGrid에 행과 열을 추가하는 방법은 무엇입니까?
- 17. 기존 데이터 집합에 열을 추가하는 가장 좋은 방법은 무엇입니까?
- 18. 두 개 이상의 데이터 소스가있는 경우
- 19. Windows Forms에서 데이터 바인딩 된 컨트롤에 열을 추가하는 방법
- 20. 두 개 이상의 데이터 소스가있는 동적 그리드
- 21. raw_contacts 테이블에 새 열을 추가하는 방법은 무엇입니까?
- 22. Windows 응용 프로그램의 오버레이
- 23. 간단한 Linq 질문 : 두 개 이상의 열을 선택하는 방법?
- 24. Windows Forms 응용 프로그램의 HTTP Post C#
- 25. C# 응용 프로그램의 Windows Aero 영역
- 26. C# Windows 응용 프로그램의 ColorDialog에 견본 저장
- 27. C# Windows 응용 프로그램의 끌어서 놓기 문제
- 28. SQL Server 텍스트 데이터 형식 Maxlength = 65,535?
- 29. 응용 프로그램의 빌드 날짜를 응용 프로그램의 어딘가에 넣는 방법은 무엇입니까?
- 30. 기존 테이블에 열을 추가하는 방법은 무엇입니까?
65,535 열은 사람이 읽을 수 있어야합니다. – annakata
나는 그렇게하는 것이 타당한 이유를 생각하기가 정말 어려웠다. ... – Hemant
나는 그것을 지원하는 데이터 격자보기를 찾는 것보다 응용 프로그램의 디자인을 살펴볼 것이다 ... – fretje