| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Общие вопросы по .NET и C# > Написать Wrapper |
| Автор: AHgpeu 7.5.2009, 17:00 |
| Компонент на основе Chart. Нужно скрыть большинство свойств, и оставить основные только. Чуствую что хожу вокруг до около. Уже прошерстил достаточный объем информации о враперах Но не могу приблизиться вплотную. Понял уже что это проще элементарного. Но нигде не нашел КАК КОНКРЕТНО его описать Синтаксис. Если не трудно Для примера покажите плиз как написать враппер для класса Chart и скрыть у него свойство, например Series |
| Автор: KelTron 7.5.2009, 18:13 | ||
| Враппер, он же Wrapper, он же Обёртка. Название говорит само за себя. Просто для свойств и методов, которые должны быть скрытыми не создаёшь делегирующих аналогов в твоей обёртке и всё...
А вообще посмотри паттерн Адаптер, это то что тебе нужно. |
| Автор: AHgpeu 8.5.2009, 17:20 | ||
| Спасибо. Но я снова вернулся к исходной проблеме. это же компонент... Если порождать его от
то опять же появляется у него много лишних свойств Если сделать как просто класс, в которм объявить по вашему примеру Chart - то как тогда показать этот компонент? Или это делается совсем не так?? |
| Автор: Partizan 8.5.2009, 17:24 |
| AHgpeu, KelTron же всё показал...не надо никого ни от кого порождать... надо просто один объект положить внутрь другого...или один объект обернуть другим...как больше нравится... wrapper характеризуется отношением агрегации, а не наследования... |
| Автор: diadiavova 9.5.2009, 11:14 |
| Partizan, я думаю, что топикастер имеет в виду, что компонент надо будет отображать на форме, а там отображаются только контролы. Из этого вытекает вывод, что компонент придётся оборачивать контролом, а у него много свойств, а надо, чтоб было мало (если, конечно я всё правильно понял). AHgpeu, А зачем это нужно? Возможно задачу можно иначе решить, да и каким образом могут помешать "лишние" свойства? |
| Автор: AHgpeu 10.5.2009, 15:43 | ||||
да-да-да!! Все правильно!
Мое приложение - генератор пользовательских отчетов. Можно добавлять различные компоненты на форму (Chart'ы, таблицы, блоки, линии и т.д.). После этого можно сгенерировать такой отчет. Дело в том что с этим приложением будут работать пользователи, далекие от программирования. Свойства каждого добавленного компонента отображаются в PropertyGrid. Поэтому хотелось бы ограничить эти свойства только теми, которые нужны пользователи. Ничего лишнего. Вот. Если коротко о поставленой задаче. |
| Автор: diadiavova 10.5.2009, 19:47 |
| AHgpeu, не обязательно в пропертигриде отображать сам описываемый компонент, вместо этого можно приладить к нему объект-дескриптор. Если делать всё по уму, то в гриде можно фильтровать отображаемые свойства, и здесь есть несколько способов. В твоём случае фильтрацию лучше всего осуществить при помощи свойства BrowsableAttributes грида. Приаттачиваю пример, где я создал контрол и атрибут и в гриде отображаются только свойства, помеченные моим атрибутом. Думаю: тебе этот вариант вполне подойдёт. |
| Автор: diadiavova 10.5.2009, 20:02 |
| Да, ещё вот вариант Partizan выкладывал. http://forum.vingrad.ru/act-ST/f-201/t-237160.html |