|
Prism - Прикрепляемые поведения в свете событий и типов контролов
|
|||
---|---|---|---|
#18+
Если почитать тут (под рисунком и код), то получается, что прикреплять команды можно только к тем событиям, которые есть у типа Т в CommandBehaviorBase<T>? Т. е. я не могу обработать Click на элементы дерева (TreeViewItem) или ещё как? И ещё вопрос. Есть разные имплементации прикрепляемых поведений, но в Призме их надо все делать ручками, т. к. готовое есть только для события ButtonBase.Click, которое и в WPF, и в последних версиях Silverlight есть и так. А вот я нашёл одну из имплементаций , где, вроде, кодить ничего не нужно - добавил ссылку на сборку и пошёл в разметке прикреплять поведения. И посмотрите на код - в Призме ни параметров команд, ни коллекций поведений нет. Так вот, может, кто пользовался, а я что-то упустил - какая библиотека лучше? И есть ли в Призме таки передача параметров командам через эти поведения, и коллеции поведений? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.09.2013, 09:22 |
|
Prism - Прикрепляемые поведения в свете событий и типов контролов
|
|||
---|---|---|---|
#18+
Призм потому и Призм, что разлагает всю архитектуру на части. Это позволяет проектировать приложение более свободно, без межклассовых зависимостей и четко определять функционал интерфейсов. Что касается стандартного функционала, он никуда не делся, если хочется помакаронить, пожалуйста. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.09.2013, 23:44 |
|
Prism - Прикрепляемые поведения в свете событий и типов контролов
|
|||
---|---|---|---|
#18+
Что касается команд, Призм подразумевает модульную архитектуру, соответственно поведение завязано с каждым отдельным модулем или регионом, следую терминологии. Таким образом, наследуясь от этих абстракций вы легко можете моделировать прежде всего не поведение контрола, а его контейнера, то бишь региона. Для этого вам надо описать поведение в соответствующем классе, и после собирать события в соответствующем интерфейсе. Какая библиотека лучше выбирать вам, замечу лишь на Призме оправдано писать средние и большие приложения в связи с непростым стартапом, но легкой модификацией в дальнейшем. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.09.2013, 00:16 |
|
Prism - Прикрепляемые поведения в свете событий и типов контролов
|
|||
---|---|---|---|
#18+
Я вот по этому руководтсву (и ещё парочке, где свойства зависимостей и прочее сопутствующее описывается) написал своё поведение. Вроде, работает. Только что я обнаружил - мне на каждое событие приходится отнаследоваться от призмовского базового поведения CommandBehaviorBase<T>. Нет изкоробочного функционала выбора события прямо в разметке (XAML). А вот тут всё просто и понятно, и лаконично. Второй пример я ещё не пробовал, но видел немало ссылок на это с других источников - т. е. люди успешно используют. Torre , я читал там про регионы, и пришёл к выводу, что это всего лишь одна из функций (она даже в другой сборке призмы). А получается, что их поведения сами по себе писать мало смысла - много работы и мало толку? И надо их имеено соединять в нечто большее? Т. е. для простого и удобного связывания событий контролов и команд моделей представления лучше использовать вот такие маленькие библиотеки, как во втором случае? И ещё, скажите насчёт вот этого . Почему-то в описании Призм это вскользь только упоминается, но по виду, это почти то же, что я по второй ссылке привёл (разве что нет удобного группирования поведений, и насчёт параметра команды я ещё не разобрался). Этот вот функционал, получается, дублирует поведения Призм? Или он сделан именно для того, что я сказал - простого связывания событий контролов и команд? Т. е. ещё раз: в Призм для сложных поведений, связанных с регионами, надо использовать именно CommandBehaviorBase<T>, а для простых случаев поведений контролов - Interactivity.Triggers (в последней версии, похоже, Interaction на Interactivity заменили)? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.09.2013, 06:09 |
|
Prism - Прикрепляемые поведения в свете событий и типов контролов
|
|||
---|---|---|---|
#18+
Вобщем, получилось и через блендовскую либу, и через написание своего поведения. Как я и сказал, через блендовскую ничего писать не надо. И для поведений, вобщем-то, тоже, если только нужно привязать события к командам. Но вот тот класс, который определяет прикрепляемые свойства для команд и поведения и относится к конкретному событию - это морока. Так что для простых привязок - блендовская либа, а для сложных взаимодействий - поведения. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.09.2013, 15:39 |
|
Prism - Прикрепляемые поведения в свете событий и типов контролов
|
|||
---|---|---|---|
#18+
user7320, сложно что-то в вашем Призме все) ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2013, 10:43 |
|
Prism - Прикрепляемые поведения в свете событий и типов контролов
|
|||
---|---|---|---|
#18+
netivanuser7320, сложно что-то в вашем Призме все) Да не, просто я поведения не по назначению использовал. Единственное, в Призме нет, насколько я пока понимаю, изкоробочных коллекций привязываемых команд, как тут . Но это и не много где надо. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2013, 11:17 |
|
Prism - Прикрепляемые поведения в свете событий и типов контролов
|
|||
---|---|---|---|
#18+
user7320netivanuser7320, сложно что-то в вашем Призме все) Да не, просто я поведения не по назначению использовал. Единственное, в Призме нет, насколько я пока понимаю, изкоробочных коллекций привязываемых команд, как тут . Но это и не много где надо.да я вообще про этот Призм. MvvmLight или даже куски,выдранные из него решают проблемы. ) ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2013, 11:19 |
|
Prism - Прикрепляемые поведения в свете событий и типов контролов
|
|||
---|---|---|---|
#18+
Но в Призме есть такая западлянка с Interactivity: http://stackoverflow.com/questions/9650778/prism-assembly-reference-failure-system-windows-interactivity http://social.msdn.microsoft.com/Forums/vstudio/en-US/5fb7119b-b892-42a6-8af5-3437d393231e/prism-41-cant-use-invokecommandaction ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2013, 11:21 |
|
|
start [/forum/topic.php?fid=21&msg=38391827&tid=1441315]: |
0ms |
get settings: |
11ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
52ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
49ms |
get tp. blocked users: |
1ms |
others: | 302ms |
total: | 445ms |
0 / 0 |