Из того, что я узнал, вы не можете привести к BindingList, но вы можете обернуть свой результат из запроса Linq с помощью NEW BindingList. Однако, это не работает для меня, потому что к моему списку оригинальных привязок прикреплены некоторые события, и я хотел бы сохранить те же события в моем наборе результатов LINQ.
Например:
У меня есть моя основная коллекция BindingList под названием «Отчеты» (типа IReport). Эта коллекция регистрируется на событие следующим образом:
Reports.AddingNew + = OnAddNewXReport;
Теперь, когда я хочу отфильтровать эту большую коллекцию и извлечь только несколько подходящих элементов, я использую Linq, чтобы получить этот список соответствия. Чтобы сделать этот список BindingList, я новичок в следующем:
var rs = Reports.Where(r => r.ReportType == ReportType.MyType).Select(o => (MyType) o);
return new BindingList<MyType>(rs.ToList());
Как видите, эта вновь созданная коллекция не будет срабатывать при добавлении нового элемента.
Кто-нибудь знает, как решить эту проблему? В любом случае можно ли закрыть подписку на событие из исходного BindingList на «отфильтрованный» BindingList?
Спасибо за помощь