![]() |
Модераторы: gambit, Kefir, Partizan |
![]() ![]() ![]() |
|
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: нет Всего: 329 |
Есть ли компонент наподобие ActionList из Delphi?
|
|||
|
||||
-Mikle- |
|
|||
![]() Невидимка Vingrad'а ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1672 Регистрация: 22.6.2003 Где: Казахстан, Астана Репутация: 13 Всего: 59 |
А для "не делфистов" есть более понятное объяснение?
-------------------- Если тебе плюют в спину, значит ты впереди... |
|||
|
||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: нет Всего: 329 |
Да, есть.
В этом компоненте живёт список из Action`ов (действий). Каждый Action содержит некие общие свойства: ImageIndex, Caption, HotKey, HotKey2. А также события, например, OnClick. Эти же свойства содержит большинство визуальных компонент управления: кнопки, меню. Теперь представим, что у нас на форме лежит грид, главное меню, контекстное меню грида, панель с кнопками. Есть Action для редактирования записи. Т.е. просто вызывается некий код, который редактирует запись грида. Требуется для всех элементов управления, которые лежат на форме: кнопки, меню, грид и т.д. создать событие нажатия, двойного нажатия, настроить свойства Caption, показать иконку, назначить горячие клавиши. Создаём один Action и настраиваем его свойства, пишем код редактирования записи. Далее в гриде на двойной клик цепляем событие этого Action`а, в главное и контекстное меню определённым пунктам и кнопке на панели кнопок назначаем этот Action. Пункты меню и кнопка принимают все свойства и методы этого Action`а. И это всё в дизайне. Для меню и кнопок, и для грида не нужно писать ни единой строчки кода. Это реально RAD. Не нужно отдельно настраивать каждый пункт меню и/или кнопку. Все Action`ы можно сгруппировать по категориям. Вот снимок этого списка действий: ![]() Вот у одной из кнопок назначено действие и сразу приняты некоторые свойства: ![]() у грида на двойной щелчок тоже назначено это действие: ![]() |
|||
|
||||
Rohoss |
|
|||
![]() Начальник интернета ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1308 Регистрация: 9.10.2006 Где: Matrix Репутация: 4 Всего: 18 |
Я вот читаю список тем, и тут вижу "Компонент ActionList из Delphi" сразу начинаю думать, кто бы мог создать такую тему
![]() Нет, в WPF/Silverlight, насколько я знаю такого компонента нет. Есть несколько подобная, но более мощная штука, Команды |
|||
|
||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: нет Всего: 329 |
Прочитал бегло, по диагонали, про команды. Я так понял, что там только код нажатия на кнопку или выбора меню. А у меня 3-4 кнопки и 2-3 пункта меню и для каждой кнопки и меню мне нужно отдельно вписать название, всплывающую подсказку, указать иконку, и др. свойства. Так?
Мало того, изменяя во время исполнения или во время проектирования некоторые свойства, мне нужно менять их у всех "связанных" меню и кнопок. А в ActionList(ActionManager) ябы поменял свойство только у Action, а меню и кнопки сами бы автоматом подхватили и отобразили изменения. Но вот есть весьма древний компонент ещё для .NET 2.0 http://www.codeproject.com/KB/miscctrl/CradsActions.aspx Я думал, что за это время в дотнете могли бы придумать что-то своё, родное. Добавлено @ 13:04 TAction provides a RAD way Добавлено @ 13:06 Мало того, вот есть некий уже сознанный и настроенный Action. Нужно создать очень похожий, который отличается только 1-2 свойствами. Хотелось бы иметь возможность полностью скопипастить существующий Action. Может есть какие-нибудь сторонние компоненты/библиотеки? Telerik, DevExpress, etc. Добавлено @ 13:08 Вот ещё нашёл мёртвый для .NET 1 http://www.torry.net/authorsmore.php?id=6349 Добавлено @ 13:11 Вот ActionManager поживее ![]() http://woll2woll.net/OverviewActionManager.html |
|||
|
||||
-Mikle- |
|
|||
![]() Невидимка Vingrad'а ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1672 Регистрация: 22.6.2003 Где: Казахстан, Астана Репутация: 13 Всего: 59 |
Команды позволяют реализовать все это. Делается это так:
Создаешь класс команды и реализуешь в нем интерфейс ICommand. Примеров реализации - море, гугли RelayCommand или DelegateCommad. Да или сам реализуй как хочешь. В этом же классе ты можешь объявить свойства типа: Header, Description, GestureKey, GestureModifier, Icon (рекомендую тип string). Далее, объявляешь эти команды как свойства (по одному, для кажого действия). Все, можешь биндить кнопки, контекстные меню, главные меню и т.д. к одной и той же команде. Вообще, рекомендую, тщательно ознакомиться с паттерном MVVM. С таким подходом, очень хорошо и красиво реализовываются приложения Silverlight\WPF. -------------------- Если тебе плюют в спину, значит ты впереди... |
|||
|
||||
Rohoss |
|
|||
![]() Начальник интернета ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1308 Регистрация: 9.10.2006 Где: Matrix Репутация: 4 Всего: 18 |
Команду можно применять для скольких угодно элементов управления. Что касается иконки, подсказки и тд, то насколько я знаю команды не держат эти свойства, однако при желании можно добавить...
Такая ### в .нете и нафиг не надо. И вообще, Akella, если есть желания изучать .нет то не стоит в нём искать делфи, это другая технология где думать нужно по другому. У многих делфистов почему то складывается впечатления что в .нете должно быть тоже что и в делфи только его должно быть больше и круче - но это не так. И вообще, я не знаю ни одного не визуального компонента в WPF, всё что не визуально должно быть классом и не засорять пространство дизайна! Добавлено через 2 минуты и 27 секунд Рано ему ещё ![]() Это сообщение отредактировал(а) Rohoss - 29.6.2011, 13:48 |
|||
|
||||
-Mikle- |
|
|||
![]() Невидимка Vingrad'а ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1672 Регистрация: 22.6.2003 Где: Казахстан, Астана Репутация: 13 Всего: 59 |
Да ладно, чем раньше, тем лучше. У нас в конторе двух делфистов мне на обучение отдали. После небольших основ, я сразу им MVVM вручил. Поохали, поахали, поудивлялись и про делфи уже не вспоминают почти ![]() -------------------- Если тебе плюют в спину, значит ты впереди... |
|||
|
||||
Rohoss |
|
|||
![]() Начальник интернета ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1308 Регистрация: 9.10.2006 Где: Matrix Репутация: 4 Всего: 18 |
Угу, я же тоже делфистом когда то был ![]() |
|||
|
||||
Akella |
|
||||||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: нет Всего: 329 |
я ищу удобства, к которым привык и считаю их полезными и ускоряющими процесс разработки Добавлено через 5 минут и 18 секунд
А почему нет? Кто придумал C#? Вроде же кто-то из борладна. Дельфи удобен и быстр, реально это RAD. Добавлено через 6 минут и 47 секунд
Да, для дельфи ну просто океан самых разнообразных компонент. Добавлено через 8 минут и 6 секунд В общем давайте заканчивать холивар. |
||||||
|
|||||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: нет Всего: 329 |
http://msdn.microsoft.com/ru-ru/magazine/dd458800.aspx читать неперечитать ![]() я уже столько материалов набрался читать ![]() |
|||
|
||||
-Mikle- |
|
|||
![]() Невидимка Vingrad'а ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1672 Регистрация: 22.6.2003 Где: Казахстан, Астана Репутация: 13 Всего: 59 |
Статья не очень удачна. Вечером постараюсь дать ссылку, где расписан сам MVVM. В этой статье MVVM рассматривается через призму Silverlight2, а это не гуд.
Ну так вот, люди набрались там опыта и поняли ошибку. Затем, создали в шарпе нечто более универсальное, не требующее постоянного поиска новых компонент. -------------------- Если тебе плюют в спину, значит ты впереди... |
|||
|
||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: нет Всего: 329 |
||||
|
||||
djoni781 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 27.6.2012 Репутация: нет Всего: нет |
Модератор: Сообщение скрыто. |
|||
|
||||
![]() ![]() ![]() |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | WPF и Silverlight | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |