nie wiem czy tytul oddaje o co chodzi :/
a chodzi o:

mam wlasna generyczna liste implementujaca IBindingList (powiedzmy BL<T>), ktora wewnetrznie skladuje dane w kontenerze InternalItem<T>, bo trzyma dodatkowe informacje o obiekcie (jego stan)
so far so good :)

jest sobie interfejs IDataErrorInfo, ktory ladnie wspolpracuje z kontrolkami DevExpress, wyswietlajac w gridzie komunikaty bledow w komorkach

tworze sobie moja binding liste BL<MyBizObj>, ale moj obiekt biznesowy nie implementuje IDataErrorInfo i nie potrzebuje zeby to robil
ale kontener obiektu uzyty w mojej binding list moglby

problem to zwrocic obiekt kontenera, ale tak zeby mogl bez problemu byc uzywany jako moj obiekt biznesowy (ktory przechowuje), ale tez zeby kontener moglbyc uzyty (rzutowany) na IDataErrorInfo

albo inne zastepcze (uniwersalne - generyczne) rozwiazanie
czyli tak opakowac liste obiektow biznesowych zeby pozostaly obiektem biznesowym, a dodatkowo rozszerzyc ich wlasciwosci (przechowywanie stanu - czy dane ulegly zmianie; zglaszanie bledow przez IDataErrorInfo; etc.)
binding list jest ok, bo z automatu obsluguje dodawanie i usuwanie, moja takze wylapuje zmiany obiektow i umozliwia pobranie stanu rekordu (jesli implementuja INotifyPropertyChanged)