我有BindingList对象,它用DataGridView附加。
BindingList<FilesToProcessDataModels> Listfiles = new BindingList<FilesToProcessDataModels>();
dataGridFiles.DataSource = Listfiles;
我想按照Where中的给定条件过滤项目列表。如下:
dataGridSheets.DataSource = Listfiles.Where(i => i.Status == FileStatus.NotProcessed).ToList();
上面的代码工作正常,但我想将过滤器resut分配给相同类型的对象[Listfiles]而不是datagrid,
当我这样做时:
Listfiles = Listfiles.Where(i => i.Status == FileStatus.NotProcessed).ToList();
它给出了以下erorr
[无法将类型'System.Collections.Generic.List隐式转换为 的BindingList']
如何将通用列表转换为BindingList<FilesToProcessDataModels>
?
答案 0 :(得分:18)
下面是标准方式 - 谷歌应该很容易显示 - 即使在SO:
Convert IList<T> to BindingList<T>
var listFiles= new List<FilesToProcessDataModels>();
var listBindingFiles = new BindingList<FilesToProcessDataModels>(listFiles);
答案 1 :(得分:4)
像这样:
var yourList = new List<FilesToProcessDataModels>();
var listBinding = new BindingList<FilesToProcessDataModels>(yourList);
答案 2 :(得分:0)
Listfiles = Listfiles.Where(i => i.Status == FileStatus.NotProcessed).ToList();
我认为您已将ListFiles定义为BindingList&lt;&gt;你现在试图分配一个List&lt;&gt;它。
这是该错误的原因