|
Binding DataGrid класс с вложенными списками
|
|||
---|---|---|---|
#18+
Добрый день всем. WPF Подскажите, можно ли реализовать Binding к DataGrid сложный класс, т.е. вложенные списки сделать в строку грида, или всё же конвертировать в плоский класс? Код: 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.
Вот такой класс, грид группируется по GroupName и ObjItem.Name, раньше класс был плоский, вот так группировал: Код: c# 1. 2. 3. 4.
А сейчас с API приходит структурированный класс и не знаю как его привязать. Код: xml 1. 2. 3. 4. 5. 6.
Ещё в WPF шарю не очень, не судите строго. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2022, 10:18 |
|
Binding DataGrid класс с вложенными списками
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2022, 11:07 |
|
Binding DataGrid класс с вложенными списками
|
|||
---|---|---|---|
#18+
Слить в один плоский список, и группировка в несколько уровней. https://docs.microsoft.com/en-us/dotnet/desktop/wpf/controls/how-to-group-sort-and-filter-data-in-the-datagrid-control?view=netframeworkdesktop-4.8 ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2022, 14:24 |
|
Binding DataGrid класс с вложенными списками
|
|||
---|---|---|---|
#18+
Спасибо, понятно, у меня так раньше и было, думал есть альтернативное решение. API-ка выдает структурный объект, было бы классно ничего не конвертить. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2022, 10:22 |
|
Binding DataGrid класс с вложенными списками
|
|||
---|---|---|---|
#18+
Евгений_lea Спасибо, понятно, у меня так раньше и было, думал есть альтернативное решение. API-ка выдает структурный объект, было бы классно ничего не конвертить. Ну, вполне себе можно использовать вложенные DataTemplate. Решение с плоским списком и многоуровневой группировкой проще, и плюс с этому - сырые данные не являются полноценной вложенной вьюмоделью, в нормальных условиях конвертация всё равно бы понадобилась. Ну а если уж очень хочется - можно как-то так: запрос для получения тестовых данных: Код: sql 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.
возвращаемые данные Код: 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. 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. 122. 123. 124. 125. 126. 127. 128. 129. 130. 131. 132. 133. 134. 135. 136. 137. 138. 139. 140. 141. 142. 143. 144. 145. 146. 147. 148. 149. 150. 151. 152. 153. 154. 155. 156. 157. 158. 159. 160. 161. 162. 163. 164. 165. 166. 167. 168. 169. 170. 171. 172. 173. 174. 175. 176. 177. 178. 179. 180. 181. 182. 183. 184. 185. 186. 187. 188. 189. 190. 191. 192. 193. 194. 195. 196. 197. 198. 199. 200. 201. 202. 203. 204. 205. 206. 207. 208. 209. 210. 211. 212.
Классы для десериализации: Код: 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.
Вьюмодель: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22.
Вью: Код: c# 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. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37.
... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2022, 13:22 |
|
Binding DataGrid класс с вложенными списками
|
|||
---|---|---|---|
#18+
Спасибо, интересно, надо попробовать. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2022, 09:40 |
|
Binding DataGrid класс с вложенными списками
|
|||
---|---|---|---|
#18+
Евгений_lea , можно сделать парсинг коллекции в столбцы на Шарпе в событии AutoGenerateColumns. Но возникает проблема с определением нужного количество колонок. Ведь вы используете простые списки, которые в каждой строке могут иметь разное количество элементов. Если у вас есть какие-то условия по которым можно определить количество колонок, то решение сделать не трудно. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2022, 10:35 |
|
Binding DataGrid класс с вложенными списками
|
|||
---|---|---|---|
#18+
просто сделай нормальный ViewModel и приводи данные к тому виду, который хочешь отобразить, это же основа основ MVVM ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2022, 11:21 |
|
Binding DataGrid класс с вложенными списками
|
|||
---|---|---|---|
#18+
Roman Mejtes , я думаю, что это зависит от задания и реализованной архитектуры Решения. В общем случае, задачи представления должны решаться в Представлении, а не в VM. Основная функция VM - отражение Модели в свои свойства. В том числе, как вы верно заметили, коллекция Модели может отражаться в более удобную для Представления коллекцию. Но если этот более "удобный вид" больше ни для чего не нужен, то можно и в Представлении создать правильную компоновку по коллекции с исходным типом элементов. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2022, 13:27 |
|
|
Start [/forum/topic.php?fid=21&msg=40126571&tid=1440229]: |
0ms |
get settings: |
16ms |
get forum list: |
16ms |
check forum access: |
1ms |
check topic access: |
1ms |
track hit: |
48ms |
get topic data: |
10ms |
get forum data: |
1ms |
get page messages: |
263ms |
get tp. blocked users: |
1ms |
others: | 318ms |
total: | 675ms |
0 / 0 |