将通用列表转换为BindingList <t> </t>

时间:2013-12-05 11:30:08

标签: c# winforms generic-list bindinglist

我有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>

3 个答案:

答案 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;它。

这是该错误的原因