У меня есть интерфейс IDoc и абстрактный класс, который реализует его с именем Doc. Затем у меня есть класс с именем BookDoc, который наследуется от Doc, и другой класс JournalDoc, который также наследуется от Doc.
Теперь я хотел бы связать BindingList<BookDoc>
или BindingList<JournalDoc>
с пользовательским DataGridView. Затем я хочу получить доступ к свойству Errors, которое они оба наследуют от класса Doc.
полуработающий пример:
var dataSource = this.DataSource as BindingSource;
BindingList<BookDoc> tempBookDocs = dataSource.DataSource as BindingList<BookDoc>;
var Docs = new List<IDoc>();
foreach (var tempDoc in tempBookDocs)
{
Docs.Add(tempDoc);
}
Вышеприведенный пример работает, и я получаю список документов, который заполняется, и я могу получить доступ к свойству Errors, но мне все равно придется жестко закодировать тип списка, который был изначально связан.
Я бы хотел сделать что-то вроде этого, хотя я не уверен, что это возможно.
var dataSource = this.DataSource as BindingSource;
BindingList<Doc> Docs = dataSource.DataSource as BindingList<Doc>;
Это дает мне нулевой список документов.