![]() |
|
Модераторы: Partizan, gambit |
![]()
|
|
| AHgpeu |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 124 Регистрация: 6.4.2007 Репутация: нет Всего: нет |
Компонент на основе Chart.
Нужно скрыть большинство свойств, и оставить основные только. Чуствую что хожу вокруг до около. Уже прошерстил достаточный объем информации о враперах Но не могу приблизиться вплотную. Понял уже что это проще элементарного. Но нигде не нашел КАК КОНКРЕТНО его описать Синтаксис. Если не трудно Для примера покажите плиз как написать враппер для класса Chart и скрыть у него свойство, например Series --------------------
ᆉᆈǀƿᆇᆆᆅᆂᆁᆇᆆ |
|||
|
||||
| KelTron |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 745 Регистрация: 8.10.2006 Где: Красноярск Репутация: 9 Всего: 38 |
Враппер, он же Wrapper, он же Обёртка. Название говорит само за себя.
Просто для свойств и методов, которые должны быть скрытыми не создаёшь делегирующих аналогов в твоей обёртке и всё...
А вообще посмотри паттерн Адаптер, это то что тебе нужно. Это сообщение отредактировал(а) KelTron - 8.5.2009, 10:43 -------------------- Тысячами незримых нитей обвивает тебя Закон. Разрубишь одну - преступник. Десять - смертник. Все - Бог. Эвенгар Салладорский, основатель Школы Тьмы. |
|||
|
||||
| AHgpeu |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 124 Регистрация: 6.4.2007 Репутация: нет Всего: нет |
Спасибо.
Но я снова вернулся к исходной проблеме. это же компонент... Если порождать его от
то опять же появляется у него много лишних свойств Если сделать как просто класс, в которм объявить по вашему примеру Chart - то как тогда показать этот компонент? Или это делается совсем не так?? --------------------
ᆉᆈǀƿᆇᆆᆅᆂᆁᆇᆆ |
|||
|
||||
| Partizan |
|
|||
![]() Let's do some .NET ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 2828 Регистрация: 19.12.2005 Где: Санкт-Петербург Репутация: 18 Всего: 67 |
AHgpeu,
KelTron же всё показал...не надо никого ни от кого порождать... надо просто один объект положить внутрь другого...или один объект обернуть другим...как больше нравится... wrapper характеризуется отношением агрегации, а не наследования... -------------------- СУВ, Partizan. |
|||
|
||||
| diadiavova |
|
|||
![]() Доктор Зло(диагност, настоящий, с лицензией и полномочиями) ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5821 Регистрация: 14.8.2008 Где: В Коньфпольте Репутация: 31 Всего: 142 |
Partizan, я думаю, что топикастер имеет в виду, что компонент надо будет отображать на форме, а там отображаются только контролы. Из этого вытекает вывод, что компонент придётся оборачивать контролом, а у него много свойств, а надо, чтоб было мало (если, конечно я всё правильно понял).
AHgpeu, А зачем это нужно? Возможно задачу можно иначе решить, да и каким образом могут помешать "лишние" свойства? -------------------- Хочешь получить мудрый совет - читай подписи участников форумов. Злой доктор Щасзаболит |
|||
|
||||
| AHgpeu |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 124 Регистрация: 6.4.2007 Репутация: нет Всего: нет |
да-да-да!! Все правильно!
Мое приложение - генератор пользовательских отчетов. Можно добавлять различные компоненты на форму (Chart'ы, таблицы, блоки, линии и т.д.). После этого можно сгенерировать такой отчет. Дело в том что с этим приложением будут работать пользователи, далекие от программирования. Свойства каждого добавленного компонента отображаются в PropertyGrid. Поэтому хотелось бы ограничить эти свойства только теми, которые нужны пользователи. Ничего лишнего. Вот. Если коротко о поставленой задаче. --------------------
ᆉᆈǀƿᆇᆆᆅᆂᆁᆇᆆ |
||||
|
|||||
| diadiavova |
|
|||
![]() Доктор Зло(диагност, настоящий, с лицензией и полномочиями) ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5821 Регистрация: 14.8.2008 Где: В Коньфпольте Репутация: 31 Всего: 142 |
AHgpeu, не обязательно в пропертигриде отображать сам описываемый компонент, вместо этого можно приладить к нему объект-дескриптор. Если делать всё по уму, то в гриде можно фильтровать отображаемые свойства, и здесь есть несколько способов.
В твоём случае фильтрацию лучше всего осуществить при помощи свойства BrowsableAttributes грида. Приаттачиваю пример, где я создал контрол и атрибут и в гриде отображаются только свойства, помеченные моим атрибутом. Думаю: тебе этот вариант вполне подойдёт. Присоединённый файл ( Кол-во скачиваний: 4 )
PropGridSmpl.rar 49,10 Kb-------------------- Хочешь получить мудрый совет - читай подписи участников форумов. Злой доктор Щасзаболит |
|||
|
||||
| diadiavova |
|
|||
![]() Доктор Зло(диагност, настоящий, с лицензией и полномочиями) ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5821 Регистрация: 14.8.2008 Где: В Коньфпольте Репутация: 31 Всего: 142 |
Да, ещё вот вариант Partizan выкладывал.
http://forum.vingrad.ru/act-ST/f-201/t-237160.html Это сообщение отредактировал(а) diadiavova - 10.5.2009, 20:03 -------------------- Хочешь получить мудрый совет - читай подписи участников форумов. Злой доктор Щасзаболит |
|||
|
||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |