2013-12-05 4 views
3

У меня есть объект BindingList, который дополняется DataGridView.Преобразовать общий список в BindingList <T>

BindingList<FilesToProcessDataModels> Listfiles = new BindingList<FilesToProcessDataModels>(); 
dataGridFiles.DataSource = Listfiles; 

Я хочу, чтобы отсортировать список элементов по заданным условиям в разделе Где. как следующее:

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>?

+2

Дубликата: http://stackoverflow.com/questions/14953461/convert-ilistt-to-bindinglistt – Marton

ответ

15

ниже является стандартным способом - Тхо Google должен показать это вверх легко -Даже на SO:

Convert IList<T> to BindingList<T>

var listFiles= new List<FilesToProcessDataModels>(); 
var listBindingFiles = new BindingList<FilesToProcessDataModels>(listFiles); 
+0

На самом деле я использую производный класс из BindingList. SortableBindingList : BindingList . Я просто назвал два базовых конструктора из производного класса 1. 'public SortableBindingList (коллекция IList ): base (collection) {}' 2. 'public SortableBindingList(): base() {}'. Теперь он работает отлично. благодаря – Zeeshanef

2

Как это:

var yourList = new List<FilesToProcessDataModels>(); 
var listBinding = new BindingList<FilesToProcessDataModels>(yourList); 
+1

великих умов и т.д ...; _0 –

+1

@jimtollan Да, слишком плохо Zeeshanef не взял 20 секунд, чтобы найти его на google (или SO), прежде чем создавать новый вопрос. – Marton

0
Listfiles = Listfiles.Where(i => i.Status == FileStatus.NotProcessed).ToList(); 

Я думаю, что вы определил ListFiles как BindingList <> бит теперь вы пытаетесь назначить List <> ему.

Это является причиной этой ошибки