Медленная и нестабильная прокрутка сетки WPF при загрузке больших объемов данных (40 столбцов, 2000 строк)

Короче говоря, мы не можем добиться приемлемой производительности прокрутки от любого типа элемента управления сеткой / элементами WPF при загрузке большого количества чистых данных.

У нас есть создал статический независимый прототип с использованием сетки DevExpress WPF и загрузил его здесь:

http://jump.fm/QOTDL

Мы также пробовали использовать сетку Infragistics и Xceed, и проблема та же.

Похоже, что WPF просто не может справиться с достаточно большими сетками данных, отображающими большое количество данных, поскольку это обеспечивает удобство работы пользователя. Даже без какой-либо привязки данных, простое предоставление статических данных (~ 40 столбцов шириной, 2000 строк) приводит к ползанию. На самых низких уровнях профилировщик, кажется, указывает на чрезмерное количество «меры», происходящее в дополнение к большому количеству сборок мусора, что может быть причиной нерегулярного заикания.

Код в прототипе можно легко заменить для работы с другие сетки. Если кто-то может обеспечить плавную прокрутку в сценарии, приведенном , особенно , в случаях, когда данные сгруппированы на нескольких уровнях и плотно упакованы, сообщите нам, мы были бы очень заинтересованы услышать от вас.

Дополнительные сведения:

Мы создаем 2000 наших объектов (с ~ 40 свойствами каждый) и назначаем их свойству источника данных сетки.

Каждый из наших объектов представлен как класс, подобный приведенному ниже:

public class RowViewModel
{
    public double AskAsw { get; set; }
    public string AskBmkName { get; set; }
    public double AskBmkPrice { get; set; }
    public double AskBmkSprd { get; set; }
    ... and so on
}

Они создаются и добавляются в коллекцию / список следующим образом:

        for (int i = 1; i < 2000; i++)
        {
            _rowViewModels.Add(new RowViewModel(i));
        }

И затем привязываются к сетке данных. Очень просто:

        gridControl.DataSource = _rowViewModels;

Это приводит к отображению этой информации в сетке данных. Мы сделали шрифт меньше (10 пикселей по желанию пользователя), а также автоматически изменили размер и сгруппировали столбцы. Результат выглядит примерно так:

http://i54.tinypic.com/21jt11t.png

И прокрутка очень медленная / медленная. Сообщите нам, если у вас возникнут какие-либо мысли.

5
задан Thomas Levesque 11 November 2010 в 14:37
поделиться