【问题标题】:I can't use method Filter on ObservableCollection我不能在 ObservableCollection 上使用方法 Filter
【发布时间】:2021-02-16 04:36:05
【问题描述】:

在我的viewModel 上,我开发了这段代码,可以让我实现一个研究过滤器:

        public ICollection<Nc> Ncs
        {
            get
            {
                var ncs = _ncManager.Ncs;

                _ncCollectionView = CollectionViewSource.GetDefaultView(ncs);
                _ncCollectionView.Filter = _DoesNcMatchFileNameFilter;

                return ncs;
            }
        }
        private ICollectionView _ncCollectionView;

此方法有效,但如果我尝试在另一个viewModel 中实现另一个类似的方法:

    private ObservableCollection<Material> _materials;
    public ObservableCollection<Material> materials
    {
       get
       {
          var materials = Material.Name;
          _materialCollectionView = (CollectionViewSource)CollectionViewSource.GetDefaultView(materials);
          _materialCollectionView.Filter = _DoesMaterialMatchFileNameFilter;
    
          return Materials;
       }
    }
    private CollectionViewSource _materialCollectionView;

我收到一个错误:CollectionViewSrouce.Filter can only appear on the left hand side of += or -=".

为什么我不能做同样的事情?我做错了什么?

我尝试阅读此页面ObservableCollection<> vs. List<>,但没有帮助。

【问题讨论】:

  • 你遇到了什么错误?
  • @sommmen 我编辑了帖子,我的错

标签: c# viewmodel


【解决方案1】:

_materialCollectionView 应该不是ICollectionView 类型吗?

所以:

private ObservableCollection<Material> _materials;
    public ObservableCollection<Material> materials
    {
       get
       {
          var materials = Material.Name;
          _materialCollectionView = CollectionViewSource.GetDefaultView(materials);
          _materialCollectionView.Filter = _DoesMaterialMatchFileNameFilter;
    
          return Materials;
       }
    }
    private ICollectionView _materialCollectionView;

【讨论】:

    猜你喜欢
    • 2021-05-23
    • 1970-01-01
    • 1970-01-01
    • 2023-01-07
    • 2022-01-16
    • 2014-10-05
    • 1970-01-01
    • 2018-08-19
    • 2015-08-24
    相关资源
    最近更新 更多