|
Правильное размещение функционала и привязки команд
|
|||
---|---|---|---|
#18+
Eld Hasp- Каких-то "стандартных" методов для подключения кастомных команд в списочных элементах в WPF не предусмотрено. Поэтому и пришлось создавать класс ContextHolderЭто высказывание справедливо для работы в парадигме MVVM. Кстати, RelayCommand тоже не существует "из коробки". ... |
|||
:
Нравится:
Не нравится:
|
|||
03.11.2018, 16:21 |
|
Правильное размещение функционала и привязки команд
|
|||
---|---|---|---|
#18+
Eld Hasp- Если использовать напрямую команды из класса RoutedUICommand, то они требуют присоединения обработчика в самом окне на уровне View. Какая-то, как мне кажется, не завершённость в реализации... Или я опять чего-то не до понял?Ну это опять же к предыдущему вопросу. Присоединение обработчика возможно, когда работаешь с CodeBehind, а когда используешь MVVM - нужна примочка в виде перехватчика всплывающих команд, которая будет направлять их выполнение в VM на RelayCommand ... |
|||
:
Нравится:
Не нравится:
|
|||
03.11.2018, 16:24 |
|
Правильное размещение функционала и привязки команд
|
|||
---|---|---|---|
#18+
Shocker.ProЭто не привязка. Я советовал перечитать, что собой представляет команда. Команда - это просто экземпляр класса "RoutedUICommand", присвоенный статической переменной. Команда САМА ПО СЕБЕ ничего не делает - это просто маркер. Button заставляет всплывать экземпляр, присвоенный статической переменной ApplicationCommands.New. Он отлавливается уровнем выше с помощью local:CommandBinding. Но этот "уловитель" должен же знать, на какую команду реагировать, иначе он будет реагировать на все команды, которые придут "снизу". Поэтому в его свойстве RoutedCommand указывается тот самый маркер, который нужно отлавливать именно ему.Спасибо за разъяснение. Читать-то я читаю - но до конца в голове не всё укладывается. - " Команда - это просто экземпляр класса "RoutedUICommand", присвоенный статической переменной. " - это я понял. Просто неправильно написал, выразил свою мысль. - " Но этот "уловитель" должен же знать, на какую команду реагировать, иначе он будет реагировать на все команды, которые придут "снизу" " - это тоже понятно. Не понятно другое. Всюду где читал, смотрел примеры - идёт объяснение привязки обработчика RoutedUICommand к обработчику в View. Почему? По идее WPF очень сильно завязан на MVVM. И не предусмотреть возможности привязки обработчика RoutedUICommand к VM ? Странно как-то.... Закрадывается впечатление, что я что-то не понимаю, или читаю не то что нужно..... Почему не сделать подход, используемый Roman Mejtes (свойства класса CommandBinding), стандартным для RoutedUICommand ? Это же намного удобнее и логичнее для паттерна MVVM. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.11.2018, 16:46 |
|
Правильное размещение функционала и привязки команд
|
|||
---|---|---|---|
#18+
Eld HaspНе понятно другое. Всюду где читал, смотрел примеры - идёт объяснение привязки обработчика RoutedUICommand к обработчику в View. Почему? По идее WPF очень сильно завязан на MVVMДа, я тоже согласен, что это странно - но как есть. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.11.2018, 16:48 |
|
Правильное размещение функционала и привязки команд
|
|||
---|---|---|---|
#18+
Shocker.ProДа, я тоже согласен, что это странно - но как есть.Ну... чуть отлегло от сердца. А то уже думал, что я сам такой тупой недалёкий.... Оказывается - нет! Это опять MS над всеми издевается! ... |
|||
:
Нравится:
Не нравится:
|
|||
03.11.2018, 17:00 |
|
Правильное размещение функционала и привязки команд
|
|||
---|---|---|---|
#18+
Я сам учился у Романа, спасибо ему. Может будет полезно изучить этот топик http://www.sql.ru/forum/1179489 ... |
|||
:
Нравится:
Не нравится:
|
|||
03.11.2018, 17:07 |
|
Правильное размещение функционала и привязки команд
|
|||
---|---|---|---|
#18+
Shocker.ProЯ сам учился у Романа, спасибо ему. Может будет полезно изучить этот топик http://www.sql.ru/forum/1179489 Спасибо! Прочитал - очень интересно, но с первого раза многое что не дошло. Буду вчитываться. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.11.2018, 17:45 |
|
Правильное размещение функционала и привязки команд
|
|||
---|---|---|---|
#18+
Там есть ссылка на рабочий пример. Там, в общем-то о том же, но перехватчик команд присоединяется не через специальный класс ContextHolder, а через механизм, использующий AttachedProperty. Этот способ иногда еще называют behaviors, но это не те "поведения", которые идут почти из коробки и больше заточены для использования совместно с Blend. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.11.2018, 18:07 |
|
Правильное размещение функционала и привязки команд
|
|||
---|---|---|---|
#18+
Shocker.ProТам есть ссылка на рабочий пример.Если Вы пишите о ссылке RoutedListenerSample.zip , то ссылка рабочая, но файл там уже удалён. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.11.2018, 19:58 |
|
Правильное размещение функционала и привязки команд
|
|||
---|---|---|---|
#18+
Eld HaspShocker.ProТам есть ссылка на рабочий пример.Если Вы пишите о ссылке RoutedListenerSample.zip , то ссылка рабочая, но файл там уже удалён. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.11.2018, 20:31 |
|
Правильное размещение функционала и привязки команд
|
|||
---|---|---|---|
#18+
Shocker.Pro, СПАСИБО! ... |
|||
:
Нравится:
Не нравится:
|
|||
04.11.2018, 00:34 |
|
Правильное размещение функционала и привязки команд
|
|||
---|---|---|---|
#18+
Ещё один способ привязки всплывающих RoutedCommand команд реализован мною в теме https://www.sql.ru/forum/1324536/osvoenie-attached-properties-spisochnoe-svoystvo ... |
|||
:
Нравится:
Не нравится:
|
|||
02.05.2020, 18:21 |
|
|
start [/forum/topic.php?fid=21&gotonew=1&tid=1440275]: |
0ms |
get settings: |
9ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
41ms |
get topic data: |
10ms |
get first new msg: |
6ms |
get forum data: |
2ms |
get page messages: |
46ms |
get tp. blocked users: |
1ms |
others: | 250ms |
total: | 382ms |
0 / 0 |