我正在使用一个WPF数据网格,它绑定到OberservableCollection对象来处理和显示我的文本。 我正在使用非常大的文本文件(100,000行甚至更多)。虽然我能够在合理的时间内加载和显示数据网格中的文本,但我在过滤文本方面遇到了问题。
我创建了一个过滤函数并使用ICollectionView对象,将其指定为过滤文本,如下所示:
_TextLineListView = CollectionViewSource.GetDefaultView(TextLineList);
_TextLineListView.Filter = _textLineFilter;
DgText.ItemsSource = _TextLineListView;
TextLineList是我的ObservableCollection对象。 _textLineFilter是我的过滤功能。
即使我的过滤功能只返回“true”而没有任何附加功能,文本的加载速度也会受到很大影响而且速度要慢得多。
我可以使用哪些其他过滤方法来加快速度?
答案 0 :(得分:1)
问题解决了。如果我在加载文件后设置过滤器,加载,显示和过滤文本要快得多
答案 1 :(得分:0)
您需要使用DeferRefresh方法。
using (_TextLineListView.DeferRefresh())
{
for (int i = 0; i < lines.Length; i++)
TextLineList.Add(lines[i]);
}