将ICollectionView转换为List <T>

11 c# datagrid list icollectionview

我在WPF,.NET 4.0中的DataGrid控件上绑定ICollectionView的属性类型.

我用FilterICollectionView.

    public ICollectionView CallsView
    {
        get
        {
            return _callsView;
        }
        set
        {
            _callsView = value;
            NotifyOfPropertyChange(() => CallsView);
        }
    }

    private void FilterCalls()
    {
        if (CallsView != null)
        {
            CallsView.Filter = new Predicate<object>(FilterOut);
            CallsView.Refresh();
        }
    }

    private bool FilterOut(object item)
    {
       //..
    }
Run Code Online (Sandbox Code Playgroud)

Init ICollection视图:

IList<Call> source;
CallsView = CollectionViewSource.GetDefaultView(source);
Run Code Online (Sandbox Code Playgroud)

我试图解决这个问题:

例如,源数据计数为1000个项目.我使用过滤器,在DataGrid控件中我只显示200个项目.

我想将ICollection当前视图转换为IList<Call>

Nil*_*loo 22

你可以试试:

List<Call> CallsList = CallsView.Cast<Call>().ToList();
Run Code Online (Sandbox Code Playgroud)


pay*_*ayo 0

您可以只使用扩展方法来转换:

IList<Call> source = collection.ToList();
Run Code Online (Sandbox Code Playgroud)