簡體   English   中英

如何加快WPF DataGrid?

[英]How to speed up WPF DataGrid?

背景:我執行了任意查詢,然后獲取數據-記錄數組=對象數組。 我想使用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);
        }

我看不到我能以其他方式看到的東西-我遍歷行並將它們一一添加。 行已經在內存中,此時沒有數據庫通信。 我怎么知道(添加行)是速度下降的原因? 非常簡單,我將其注釋掉,該應用變得很快。

我的盒子:Windows 7 Ultimate 32位,CPU Intel Core2Duo 2.66GHz,2GB RAM。

您是否嘗試過調用BeginInit和EndInit來停止在添加每個項目后更新網格?

grid.BeginInit();
grid.Items.Clear();

foreach (var db_row in query.Rows)
{
    var row = new DataGridRow();
    row.Item = db_row;
    grid.Items.Add(row);
}

grid.EndInit();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM