|
После привязки элемент управления не обрабатывает события
|
|||
---|---|---|---|
#18+
Я в WPF новичок. Был объявлен TreeView Код: xml 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
для TextBlock, который представляет елемент дерева сделан стиль Код: 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. 29. 30. 31. 32. 33. 34.
но при этом элемент управления не возбуждает никаких событий, например GotFocus при щелчке мыши на элементе управления. Соответственно свойства, связанные с этим событием, также не изменяются Как заставить эти события возбуждаться? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.06.2014, 22:35 |
|
После привязки элемент управления не обрабатывает события
|
|||
---|---|---|---|
#18+
_Novichok, Не знаю, зачем тебе событие GotFocus, но его я тоже добавил. При выделении объекта, получении фокуса и развёртывая на экране появляется MessageBox. Собственно, если нужно сделать отложенную загрузку в IsExpanded нужно реализовать загрузчик данных, добавить в базовый класс абстрактный метод (типа LoadChildren) и реализовывать его в классе Person. Ну, а если у тебя все ветки подгружаются сразу, то можно оставить как есть. Будут вопросы пиши Код: 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. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103.
Код: 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. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41.
Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
... |
|||
:
Нравится:
Не нравится:
|
|||
02.06.2014, 08:32 |
|
После привязки элемент управления не обрабатывает события
|
|||
---|---|---|---|
#18+
_Novichok, и вообще TextBlock не имеет фокуса ... |
|||
:
Нравится:
Не нравится:
|
|||
02.06.2014, 09:08 |
|
После привязки элемент управления не обрабатывает события
|
|||
---|---|---|---|
#18+
Roman Mejtes, спасибо за отклик Вообще, мне нужно, чтобы при выборе узла, он менял свой стиль (Background, BorderBrush, Foreground) + при этом выводилась дополнительная информация в другой элемент управления в зависимости от данных, привязанных к выбранному узлу. Проблема с событием Selected с вашей помощью преодолена (тогда дейстивтельно мне GotFocus не требуется) Код: xml 1. 2. 3. 4. 5. 6. 7. 8.
Но вот с изменением стиля - проблема остается, поскольку стиль должен применяется не ко всем узлам дерева, а к выбранным Код: xml 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18.
Для узлов, к которым привязан Project - свои настройки, для узлов с привязкой Item - свои ... |
|||
:
Нравится:
Не нравится:
|
|||
02.06.2014, 09:47 |
|
После привязки элемент управления не обрабатывает события
|
|||
---|---|---|---|
#18+
_Novichok, я не понимаю, зачем вы так сильно хотите использовать события, тут в них нет совершенно ни какой необходимости. Для того, чтоб меня внешний вид выделенного элемента можно воспользоваться триггером на свойство IsSelected ... |
|||
:
Нравится:
Не нравится:
|
|||
02.06.2014, 11:04 |
|
После привязки элемент управления не обрабатывает события
|
|||
---|---|---|---|
#18+
_Novichok, вот вам пример, выделенный элемент меняет размер и "жирность" шрифта, для этого я применил Trigger который меняет эти свойства, если элемент выделен, как только IsSelected перестает быть True, триггер отключается и применяются значения указанные в стиле. Почитайте про триггеры и еще про то в каком порядке\приоритете применяются значения к свойствам. Если они определены в стиле, триггере, объекте и т.д. Код: 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. 29. 30. 31. 32. 33. 34.
... |
|||
:
Нравится:
Не нравится:
|
|||
02.06.2014, 11:37 |
|
После привязки элемент управления не обрабатывает события
|
|||
---|---|---|---|
#18+
Roman Mejtes_Novichok, я не понимаю, зачем вы так сильно хотите использовать события, тут в них нет совершенно ни какой необходимости. Для того, чтоб меня внешний вид выделенного элемента можно воспользоваться триггером на свойство IsSelected События мне не нужны для изменения стилей. События нужны для выполнения дополнительной логики, которая не касается TreeView, то есть вывод дополнительных данных в зависимости от объекта в узле дерева. А стили нужно менять с помощью триггеров, при этом не затрагивая и не переписывая модель Поэтому код, приведенный вами, Код: c# 1. 2. 3. 4. 5. 6.
Модель находится в другой сборке и используется совместно в других проектах, поэтому подгонять ее под WPF было бы не совсем хорошо ... |
|||
:
Нравится:
Не нравится:
|
|||
02.06.2014, 12:41 |
|
После привязки элемент управления не обрабатывает события
|
|||
---|---|---|---|
#18+
[quot _Novichok]Roman Mejtes_Novichok, Модель находится в другой сборке и используется совместно в других проектах, поэтому подгонять ее под WPF было бы не совсем хорошо Не вдавался в подробности треда, но написание обертки ViewModel над моделью для конкретной View нормальная практика (пусть модель остается общей, но для представления её стоит обернуть). ... |
|||
:
Нравится:
Не нравится:
|
|||
02.06.2014, 13:52 |
|
После привязки элемент управления не обрабатывает события
|
|||
---|---|---|---|
#18+
@k@DElpher, Roman Mejtes, Проблему с установкой стилей в зависимости от выбранного узла решил следующим образом: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20.
XAML: Код: xml 1. 2. 3. 4. 5. 6.
а в стилях триггеры и все остальное ... |
|||
:
Нравится:
Не нравится:
|
|||
03.06.2014, 13:21 |
|
|
start [/forum/topic.php?fid=21&fpage=23&tid=1441111]: |
0ms |
get settings: |
8ms |
get forum list: |
11ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
32ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
44ms |
get tp. blocked users: |
1ms |
others: | 14ms |
total: | 132ms |
0 / 0 |