如何以异步方式使用CollectionViewSource

嗨,我有一个运行异步功能并将项目(将近5000个)加载到已绑定到列表框的observablecollection上的函数,现在我希望能够在列表框中搜索,我使用此代码(以任何异步方式都无法正常工作)

CollectionView view = (CollectionView)CollectionViewSource.GetDefaultView(DataList);
                view.Filter = UserFilter;

private void SearchBar_SearchStarted(object sender,HandyControl.Data.FunctionEventArgs<string> e)
        {
            CollectionViewSource.GetDefaultView(DataList).Refresh();
        }
        private bool UserFilter(object item)
        {
            return ((item as AvatarModel).DisplayName.IndexOf(txtSearch.Text,StringComparison.OrdinalIgnoreCase) >= 0);
        }

但是如果我以异步方式加载我的商品,此代码将不起作用,因为DataList为空(由于异步),我会得到nullrefrence错误,所以有什么办法可以异步方式做到这一点?

更新:

private ObservableCollection<AvatarModel> _DataList;
        public ObservableCollection<AvatarModel> DataList
        {
            get => _DataList;
            set
            {
                if (_DataList != value)
                {
                    _DataList = value;
                    NotifyPropertyChanged("DataList");
                }
            }
        }
oyangnann 回答:如何以异步方式使用CollectionViewSource

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/2859505.html

大家都在问