Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
19.02.2019, 16:18
|
|||
---|---|---|---|
ViewModel c несколькими DataContext. |
|||
#18+
Всем привет. Есть View, у которой есть ее DataContext (MainViewModel) и есть её часть, у которой должна быть своя ViewModel. Код: 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.
ViewModel'и инициализирую с помощью Ioc-контейнера Ninject. Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
В конструктор ViewModel приходит IoC-контейнер. Код: 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.
При задании ViewModel из Xaml Код: xml 1. 2. 3.
используется дефолтный пустой конструктор без аргументов и соответственно внедрение зависимостей не работает (kernel=null) (для задания x:TypeArguments="vm:MainViewModel" - работает). Не хочу включать класс SettingsVM как свойство MainViewModel - хочу сделать их несвязанными. Как можно заставить инициализироваться SettingsVM через контейнер зависимостей? Спасибо ... |
|||
:
Нравится:
Не нравится:
|
|||
|
19.02.2019, 16:53
|
|||
---|---|---|---|
|
|||
ViewModel c несколькими DataContext. |
|||
#18+
Так диконтейнер же сам инициализирует все модели. Выставьте наружу у обертки диконтейнера статик-свойства, возвращающие нужные модели/сервисы, и подцепляйте их в разметке через x:Static. P.S. Инициализировать потребителя инжектированных сущностей ядром диконтейнера идеологически неправильно, это прямая дорога к антипаттерну God, и мало чем отличается от сервис-локатора. По фэншую нужно инициализировать каждого потребителя только теми инжектированными классами, которые он использует. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
20.02.2019, 09:37
|
|||
---|---|---|---|
ViewModel c несколькими DataContext. |
|||
#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.
Код: xml 1. 2. 3. 4.
... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=21&mobile=1&tid=1440349]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
39ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
42ms |
get tp. blocked users: |
2ms |
others: | 248ms |
total: | 376ms |
0 / 0 |