|
Перехватить событие вставки текста в TextBox
|
|||
---|---|---|---|
#18+
Разрабатываю (поддерживаю) приложение с использованием MVVM. Есть ДатаГрид , есть ДатаТемплейт , который используется для отображения айтемов в датагриде. Код: xml 1. 2. 3. 4.
Понадобилось перехватывать вставку текста в ячейки грида. Чтобы перехватывать вставляемый текст, обрабатывать его. Обнаружилось, что у ТекстБокса нет события Paste . Вы скажете, что можно использовать событие TextChanged , но не хочу, чтобы метод дергался на каждый ввод символа. Гуглю, нахожу вот такое, но у меня MVVM... https://social.msdn.microsoft.com/Forums/vstudio/en-US/b52b5b99-1ee0-44b9-bfa5-7186556069ab/detecting-paste-into-textbox Какие есть идеи? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.02.2015, 09:12 |
|
Перехватить событие вставки текста в TextBox
|
|||
---|---|---|---|
#18+
Сделать Attached Property или Attached Behavior. Упаковать в него работу с CommandManager.ExecutedEvent. Вариантов много... ... |
|||
:
Нравится:
Не нравится:
|
|||
06.02.2015, 09:26 |
|
Перехватить событие вставки текста в TextBox
|
|||
---|---|---|---|
#18+
Алексей К, а можно чуть более подробнее? хотя бы в плане алгоритма ... |
|||
:
Нравится:
Не нравится:
|
|||
06.02.2015, 10:06 |
|
Перехватить событие вставки текста в TextBox
|
|||
---|---|---|---|
#18+
Ну сделать Attached Property типа ICommand. Внутри его PropertyChanged сделать подписку на событие CommandManager.ExecutedEvent. Из события вызывать указанный ICommand. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.02.2015, 10:26 |
|
Перехватить событие вставки текста в TextBox
|
|||
---|---|---|---|
#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. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45.
Код: xml 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
06.02.2015, 10:33 |
|
Перехватить событие вставки текста в TextBox
|
|||
---|---|---|---|
#18+
Ну там пару ошибок поправить, но идея должна быть понятна... ... |
|||
:
Нравится:
Не нравится:
|
|||
06.02.2015, 10:34 |
|
Перехватить событие вставки текста в TextBox
|
|||
---|---|---|---|
#18+
Алексей К, Спасибо, работает, вроде даже и нет ошибок. прикольный подход. Я что-то подобное пытался делать, но не сообразил сделать тип свойства непосредственно ICommand , мудрил с булевым :) ... |
|||
:
Нравится:
Не нравится:
|
|||
06.02.2015, 11:41 |
|
Перехватить событие вставки текста в TextBox
|
|||
---|---|---|---|
#18+
monstrilla, просто почитайте как осуществляется взаимодействие от View к ViewModel, про ICommand, RoutedCommand, RelayCommand, это решает 100 проблем ... |
|||
:
Нравится:
Не нравится:
|
|||
06.02.2015, 11:43 |
|
Перехватить событие вставки текста в TextBox
|
|||
---|---|---|---|
#18+
monstrilla... вроде даже и нет ошибок.Я там забыл добавить: if (((ExecutedRoutedEventArgs)e).Command == ApplicationCommands.Paste) ... |
|||
:
Нравится:
Не нравится:
|
|||
06.02.2015, 11:51 |
|
|
start [/forum/topic.php?fid=21&msg=38873208&tid=1440936]: |
0ms |
get settings: |
10ms |
get forum list: |
12ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
70ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
others: | 271ms |
total: | 424ms |
0 / 0 |