|
Как правильно дополнить комманду Application.Delete, сохранив её базовое выполнение?
|
|||
---|---|---|---|
#18+
Есть базовая ViewModel, в которой хочу переопределить комманду Application.Delete, добавив в неё что-то вроде запроса "Удалить запись"?, и при положительном ответе вызвать стандартный обработчик комманды. Конечно можно обработать евент в датагриде, типа так: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
Но во первых, таких датагридов куча в куче окон, не хочется городить копипаст, во вторых по MVVM не принято делать обработчики евентов. Пока не смог найти, как внутри обработчика комманды Delete вызвать её базовое выполнение. Может кто знает? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2017, 07:46 |
|
Как правильно дополнить комманду Application.Delete, сохранив её базовое выполнение?
|
|||
---|---|---|---|
#18+
Eugene7, Вы можете унаследовать свой DataGrid, туда забить обработчик DG_PreviewKeyDown и использовать его в куче окон- без копипастов. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2017, 08:53 |
|
Как правильно дополнить комманду Application.Delete, сохранив её базовое выполнение?
|
|||
---|---|---|---|
#18+
Я думал об этом. Там было пару нюансов. Первый - обработать надо не только нажатие клавиши. Так-же удаление через меню(вызываемое по пкм), это отдельное событие. А если потом добавиться кнопка отдельная, или в главном меню опция - и тут не забыть. Да и viewmodel'ей с гридами уже много, везде надо внести изменения. Подумал что через комманду проще будет, и ей не важно каким именно источником она вызвана. И теперь интересно, возможно ли вообще так сделать. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2017, 09:56 |
|
Как правильно дополнить комманду Application.Delete, сохранив её базовое выполнение?
|
|||
---|---|---|---|
#18+
Проще всего - создать отдельную команду, биндинг для неё, и засунуть всё это в грид: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32.
Код: xml 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28.
Нюанс: если кто в кнопку засунет обычную ApplicationCommands.Delete, то по нажатию кнопки будет всё то же обычное молчаливое удаление строк. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2017, 10:06 |
|
Как правильно дополнить комманду Application.Delete, сохранив её базовое выполнение?
|
|||
---|---|---|---|
#18+
маршрутизируемые команды, это наше всё :) поддерживаю Веру Павловну, хотя сам делаю малость по другому :) ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2017, 12:50 |
|
Как правильно дополнить комманду Application.Delete, сохранив её базовое выполнение?
|
|||
---|---|---|---|
#18+
Вообщем решил пойти по пути наследования DataGrid. Спасибо большое всем за помощь! ... |
|||
:
Нравится:
Не нравится:
|
|||
29.05.2017, 09:17 |
|
Как правильно дополнить комманду Application.Delete, сохранив её базовое выполнение?
|
|||
---|---|---|---|
#18+
Решение Веры Павловны действительно классное, но на выходных понял что всё равно датагрид придется расширять, почему бы там и удаление строки не расширить. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.05.2017, 09:30 |
|
|
start [/forum/topic.php?fid=21&msg=39461254&tid=1440530]: |
0ms |
get settings: |
12ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
32ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
53ms |
get tp. blocked users: |
1ms |
others: | 18ms |
total: | 154ms |
0 / 0 |