将通用列表转换为BindingList <T>

Zee*_*nef 6 c# bindinglist generic-list winforms

我有BindingList对象,它与DataGridView一起使用.

BindingList<FilesToProcessDataModels> Listfiles = new BindingList<FilesToProcessDataModels>();
dataGridFiles.DataSource = Listfiles;
Run Code Online (Sandbox Code Playgroud)

我想按照Where中的给定条件过滤项目列表.如下:

dataGridSheets.DataSource = Listfiles.Where(i => i.Status == FileStatus.NotProcessed).ToList();
Run Code Online (Sandbox Code Playgroud)

上面的代码工作正常,但我想将过滤器resut分配给相同类型的对象[Listfiles]而不是datagrid,

当我这样做时:

Listfiles = Listfiles.Where(i => i.Status == FileStatus.NotProcessed).ToList();
Run Code Online (Sandbox Code Playgroud)

它给了以下的erorr

[无法将类型'System.Collections.Generic.List隐式转换为BindingList']

如何将通用列表转换为BindingList<FilesToProcessDataModels>

jim*_*lan 18

下面是标准的方式 - 谷歌应该很容易显示 - 即使在SO:

将IList <T>转换为BindingList <T>

var listFiles= new List<FilesToProcessDataModels>();
var listBindingFiles = new BindingList<FilesToProcessDataModels>(listFiles);
Run Code Online (Sandbox Code Playgroud)


Mar*_*ton 5

像这样:

var yourList = new List<FilesToProcessDataModels>();
var listBinding = new BindingList<FilesToProcessDataModels>(yourList);
Run Code Online (Sandbox Code Playgroud)