Re: пустой master/detail datagridview
От: Ash81  
Дата: 10.09.07 08:55
Оценка:
Прошу прощения. Если бы я действительно сделал так как описал выше — проблемы бы не возникло.
Причина вот в чем:
Несколько моих классов реализуют интерфейс IParentRecord, еще несколько реализуют интерфейс — IChildRecord;
Каждый класс реализующий интерфейс IParentRecord, содержит коллекцию объектов класса реализующего IChildRecord;
(таким образом у меня формируются пары связанных таблиц)

Получаются нечто вроде:


IParentRecord
{
   BindingList<IChildRecord> СhildRecords { get; set; }
}

SomeParentClass1 : IParentRecord
{
   BindingList<IChildRecord> _childRecords;
   ...
}

SomeParentClass2 : IParentRecord
{
   BindingList<IChildRecord> _childRecords;
   ...
}


Засада в том, что я, как оказалось, совершенно напрасно передаю в BindingList — интерфейс. Как только я начинаю передавать ему конкретные классы, DataGridView инициализируется нормально (позволяет добавлять/удалять записи). Как мне кажется, дело в том, что BindingList (а может BindingSource), в случае, если в качестве типа BindingList'у передан интерфейс, "не знает" конструктор какого класса вызывать. Но вместо того, что бы выдать исключение, BindingList(или BindingSource) молча позволяет над ним надругаться. А в результате — пустой datagridview. Никак не могу придумать, как обойти эти грабли. Отказываться от достигнутого уровня абстрации очень не хочется, половину программы переписывать придется
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.