배경 : 나는 임의의 쿼리를 실행 한 다음 데이터를 가져옵니다 - 레코드 배열 = 개체 배열. 나는 DataGrid를 사용하여 그것들을보고 싶다.WPF DataGrid의 속도를 높이려면 어떻게해야합니까?
문제 : 그 응용 프로그램이 충분히 반응이 느껴지지 않습니다. 쿼리를 쿼리로 전환하는 속도가 느리며 전환하는 데 약 1-2 초가 걸리고 표시 할 레코드는 약 20 개뿐입니다! 나는 즉시 스위치를 만들고 싶습니다. "다음 쿼리"를 클릭하면 바로 결과를 얻을 수 있습니다.
코드 :
// defining colums for a grid
grid.Columns.Clear();
int i = 0;
foreach (var db_col in query.Names) // names of the colums
{
var col = new DataGridTextColumn();
col.Header = db_col;
col.Binding = new Binding(String.Format("Data[{0}]",i));
grid.Columns.Add(col);
++i;
}
// adding rows to grid -- the culprit
grid.Items.Clear();
foreach (var db_row in query.Rows)
{
var row = new DataGridRow();
row.Item = db_row;
grid.Items.Add(row);
}
내가 무엇을 내가 할 수있는 다른 방법으로 볼 수 없습니다 - I 행을 반복 내가 하나씩 추가합니다. 행이 이미 메모리에 있으므로이 시점에서 데이터베이스 통신이 없습니다. 이 (행 추가)이 속도 저하의 원인인지 어떻게 알 수 있습니까? 매우 간단하고, 나는 이것을 주석 처리하고 앱은 빠르게된다.
내 상자 : Windows 7 Ultimate 32 비트, CPU Intel Core2Duo 2.66GHz, 2GB RAM.
고맙습니다. 지금도 그래 왔지만, 지연은 볼 수 있습니다. – greenoldman