Унаследованный DataGridTableStyle и дизайнер
От: dope1960  
Дата: 26.06.06 08:53
Оценка:
Здравствуйте, господа!

Предыстория моего вопроса:
В VS2003 был создан проект на VB под .NET 1.1.
В проекте есть форма BaseRefForm, реализующая функционал справочников. Эта форма содержит DataGrid, для грида создан один стиль DataGridTableStyle1 без колонок, т.е. с пустой коллекцией GridColumnStyles. DataMember, DataSource в гриде и MappingName в стиле не заданы. К гриду прикручен компонент GridExtension (для него-то и нужен этот стиль). Все нарисовано в дизайнере.
От BaseRefForm наследуются классы — справочники, например, StreetRefForm. В StreetRefForm дизайнером добавляем в DataGridTableStyle1 необходимые колонки, настраиваем DataMember, DataSource, MappingName. Все прекрасно работает.
Недавно решил перенести проект под VS2005. Сконвертировал визардом (без ошибок).
Открываю в дизайнере StreetRefForm, хочу поправить стиль DataGridTableStyle1 в гриде — фигвам. TableStyles в пропертях открывается, но свойства DataGridTableStyle1 серые, недоступные для редактирования. Если добавить новый стиль, то он прекрасно редактируется. DataGridTableStyle1 в BaseRefForm объявлен как Protected WithEvents. Пробовал с горя менять на Public — без изменений.

Итого вопрос: Почему в VS2003 унаследованный от BaseRefForm protected-мембер DataGridTableStyle1 класса StreetRefForm доступен для редактирования, а в VS2005 нет?
Благодарю за внимание.

PS: Переделка проекта на DataGridView — крайняя мера, только если ничто другое не поможет.
Re: Унаследованный DataGridTableStyle и дизайнер
От: dope1960  
Дата: 27.06.06 10:19
Оценка:
Нашел объяснение, пишу сюда, вдруг кто не в курсе: Mother of all Visual Studio 2005 RTM bugs
Обсуждается невозможность редактирования в дизайнере коллекций в унаследованных контролах. Там есть комментарий Shawn Burke (Development Manager, Windows Forms Team):

...
So (if I recall correctly), we locked down derived collections in general and the DGV/Toolstrip stuff specifically for these reasons.
...
Anyway, sorry this is a shocker but I can say that it's not a bug that slipped through.

Буду писать руками. Грустно все это...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.