|
WPF TreeView (VS2012)
|
|||
---|---|---|---|
#18+
Здравствуйте, подскажите пожалуста, как сделать построение по данным из XML файла дерева WPF TreeView в Visual Studio 2012? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2014, 16:10 |
|
WPF TreeView (VS2012)
|
|||
---|---|---|---|
#18+
Ilya81, используй Иерархические шаблоны, создай базовую модель BaseTreeViewModel, создай в нем абстрактный метод загрузки потомков, свойства развёрнутости и выделенности, на её основе классы которые будут загружаться из модели данных путём сериализации или как вы будите парсить xml прикрутить к элементу TreeView нужную коллекцию и готово ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2014, 10:19 |
|
WPF TreeView (VS2012)
|
|||
---|---|---|---|
#18+
Человек просил описать вывод XML, для этого есть Binding по XPath с использованием XmlDataProvider - об этом и приведённый пример. Как вариант, если в других элементах управления нужен не только XML, можно в свойство какого-то view model запихнуть XmlDataProvider и назначить только для TreeView этой свойство DataContext'ом. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2014, 10:41 |
|
WPF TreeView (VS2012)
|
|||
---|---|---|---|
#18+
Roman Mejtes, можете пример скинуть? а то как то не понимаю всё вместе в целом полную картину ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2014, 14:48 |
|
WPF TreeView (VS2012)
|
|||
---|---|---|---|
#18+
Kapu4ino, ну я бы наверное примерно так делал: для элементов дерева, я бы создал базовый класс BaseTreeItem, все остальные элементы дерева должно его наследовать, с помощью него я смогу через ViewModel выделить нужный элемент и узнать какие элементы открыты или закрыты, загружать данные и т.д. Для разных нод, можно создать разные классы на базе BaseTreeItem, а в TreeView можно задать селектор шаблон, тогда разные элементы в дереве будут представленные по разному. Код: 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. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121.
ViewModel'ь: Код: 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.
ну и сама View, обязательно нужно указать в Binding'е к IsSeleted и IsExpanded Mode = TwoWay, так как по умолчанию они OneWay Код: xml 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2014, 17:08 |
|
|
start [/forum/topic.php?fid=21&fpage=21&tid=1441029]: |
0ms |
get settings: |
9ms |
get forum list: |
10ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
39ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
39ms |
get tp. blocked users: |
1ms |
others: | 273ms |
total: | 388ms |
0 / 0 |