|
Как вынести DataSet и пр. во ViewModel ?
|
|||
---|---|---|---|
#18+
Пытаюсь из окна, содержащего DataSet и пр., сделать "View", вынеся из него данные во "ViewModel". По умолчанию при перетаскивании таблицы мышью на окно в WPF студия генерирует это: Код: 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.
и вот это: Код: xml 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18.
Пытаюсь жить по заветам MVVM, поэтому из файла окна всё убираю и создаю файл для 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.
К этим данным из XAML пытаюсь достучаться так: Код: 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.
Не понимаю как из XAML достучаться до DataSet, когда в секции ресурсов окна создаётся не сразу экземпляр DataSet (как автоматом при перетаскивании таблицы), а экземпляр ViewModel. Наверняка кто-то сталкивался с такой же ситуацией? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.08.2012, 16:30 |
|
Как вынести DataSet и пр. во ViewModel ?
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
02.08.2012, 16:51 |
|
Как вынести DataSet и пр. во ViewModel ?
|
|||
---|---|---|---|
#18+
Получается, что надо (другие варианты не пошли): 1/ Экземпляр ViewModel объявлять в C# коде View, а не в XAML. 2/ Контекст данных указывать в C# коде View, а не в XAML 3/ Контекст данных указывать непосредственно для визуального элемента 4/ Контекстом данных может быть или DataSet или таблица в нём. 5/ Тогда в XAML для привязки указывать соответственно или {Binding Path=таблица} или сам контекст {Binding} 6/ Вариант с контекстом данных = ViewModel и с {Binding Path=myDataSet.MyTable} не проканал. Вариант с объявлением контекста в старших родительских элементах не проканал. Вариант с объявлением соответствующено ресурса для окна и использованием его в визуальном элементе с Path=xxx.yyy не проканал. Получается как-то так: Код: xml 1. 2. 3. 4. 5.
Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
... |
|||
:
Нравится:
Не нравится:
|
|||
13.08.2012, 11:51 |
|
|
start [/forum/topic.php?fid=21&tid=1441708]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
67ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
38ms |
get tp. blocked users: |
1ms |
others: | 323ms |
total: | 473ms |
0 / 0 |