在WPF数据网格中过滤大量文本行会影响性能

时间:2018-05-27 20:25:27

标签: c# wpf filter

我正在使用一个WPF数据网格,它绑定到OberservableCollection对象来处理和显示我的文本。 我正在使用非常大的文本文件(100,000行甚至更多)。虽然我能够在合理的时间内加载和显示数据网格中的文本,但我在过滤文本方面遇到了问题。

我创建了一个过滤函数并使用ICollectionView对象,将其指定为过滤文本,如下所示:

_TextLineListView = CollectionViewSource.GetDefaultView(TextLineList);
_TextLineListView.Filter = _textLineFilter;
DgText.ItemsSource = _TextLineListView;

TextLineList是我的ObservableCollection对象。 _textLineFilter是我的过滤功能。

即使我的过滤功能只返回“true”而没有任何附加功能,文本的加载速度也会受到很大影响而且速度要慢得多。

我可以使用哪些其他过滤方法来加快速度?

2 个答案:

答案 0 :(得分:1)

问题解决了。如果我在加载文件后设置过滤器,加载,显示和过滤文本要快得多

答案 1 :(得分:0)

您需要使用DeferRefresh方法。

using (_TextLineListView.DeferRefresh())
{
    for (int i = 0; i < lines.Length; i++)
        TextLineList.Add(lines[i]);
}