Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Помогите с Prism'ой
|
|||
|---|---|---|---|
|
#18+
Может я тривиальные вещи буду спрашивать - не пинайте - я только начинаю изучать SL, Prism и т.д. Примеры посмотрел... Стал пробовать сделать свое и сразу уперся в получение данных.... В примерах они везде создаются а-ля Код: plaintext Если данные я получаю например с сервера ввиде XML по Http? Использую WebClient добавляя обработчик Код: plaintext 1. 2. Вот есть в Prism 4 пример UIComposition: там во ViewModel список служащих получаем так: Код: plaintext GetEmployees их возвращает как описано выше... ( Код: plaintext А мне как быть??? Как вернуть результат из функции wc_OpenReadCompleted ? Или смотрим пример ViewSwitchingNavigation там вот так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. где this.meetings опять же сформирован в конструкторе.... :( Как присвоить тому же this.meetings или Employees данные полученные с сервера????? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2010, 12:54 |
|
||
|
Помогите с Prism'ой
|
|||
|---|---|---|---|
|
#18+
Nick_K_121, а при чем здесь Prism? к получению данных (с сервера) эта штука никакого отношения не имеет Nick_K_121Если данные я получаю например с сервера ввиде XML по Http? Использую WebClient добавляя обработчикесли вопрос о том как построить коллекцию объектов (типа Employee) из XML, то можно примерно так Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2010, 13:55 |
|
||
|
Помогите с Prism'ой
|
|||
|---|---|---|---|
|
#18+
код не проверял, там есть ошибки (например, wc.OpenReadCompleted не соотв. DownloadStringCompletedEventArgs ), скопипатил с работающего примера 9421140 , но идея, надеюсь понятна... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2010, 14:02 |
|
||
|
Помогите с Prism'ой
|
|||
|---|---|---|---|
|
#18+
Нет, вопрос не в этом, это я знаю :( (ну а Prism'а просто примеры от туда...) Попробую еще раз. есть View где в xaml есть например: <ListBox ItemsSource="{Binding Employees}" .... есть ViewModel где есть код: this.Employees = dataProvider.GetEmployees(); есть Model - class Employee { string Name {get;set;} } или лучше пусть он тоже во внешней библиотеке Вот, а дальше.... есть DataProvider с методом GetEmployees() небольшое отступление: есть отдельная библиотека где есть Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. Код: plaintext 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2010, 14:21 |
|
||
|
Помогите с Prism'ой
|
|||
|---|---|---|---|
|
#18+
Nick_K_121, поскольку WebClient доставляет данные с сервера асинхронно, то авторесть ViewModel где есть код: this.Employees = dataProvider.GetEmployees(); не годится, а вот так автор void wc_OpenReadCompleted(object sender, DownloadStringCompletedEventArgs e) { this.Employees = ...... ну не важно..... } годится, просто DataEmployees.Load надо дергать где-нить (в конструкторе или в обработчике Loaded страницы или (вью)модели, где именно - Вам видней) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2010, 14:48 |
|
||
|
Помогите с Prism'ой
|
|||
|---|---|---|---|
|
#18+
или, "совсем правильно", в wc_OpenReadCompleted файерить соответств.событие (типа DataLoaded), на которое вьюмодель подписывается (т.е., вариантов может быть несколько)... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2010, 14:53 |
|
||
|
Помогите с Prism'ой
|
|||
|---|---|---|---|
|
#18+
еще вариант, передавать ссылку на обработчик Код: plaintext 1. 2. 3. 4. 5. 6. есть ViewModel где есть код: (new DataEmployees()).Load(uri, wc_DownloadStringCompleted); где wc_DownloadStringCompleted - обработчик во ViewModel, в котором this.Employees = ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2010, 15:18 |
|
||
|
Помогите с Prism'ой
|
|||
|---|---|---|---|
|
#18+
LRеще вариант, передавать ссылку на обработчик хотя смысла выносить вызов WebClient (всего-то три строчки) в другой класс я не вижу... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2010, 15:22 |
|
||
|
Помогите с Prism'ой
|
|||
|---|---|---|---|
|
#18+
LRтогда есть ViewModel где есть код: (new DataEmployees()).Load(uri, wc_DownloadStringCompleted); где wc_DownloadStringCompleted - обработчик во ViewModel, в котором this.Employees = ... Ну в общем я так и сделал.... просто почемуто такой вариант как-то не нравится... думал может что-то есть правильное... Все хотел найти в инете пример полноценный (и именно для призмы), где данные подгружаются с сервера а не генерятся прямо в коде и ничего не могу найти. Примеров уйма и везде данные генерятся прямо в коде.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2010, 15:24 |
|
||
|
Помогите с Prism'ой
|
|||
|---|---|---|---|
|
#18+
Правильно не нравится. С таким подходом тебе придется каждый раз создавать новый ViewModel страниц на пять, внятности там не будет. Догика работы с БД должна быть вынесена в отдельную сущность или Моdel. В Призм сейчас появилась навигация, на мой взгляд, самый оптимальный способ - вынести подобные моменты в ее методы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2010, 16:13 |
|
||
|
Помогите с Prism'ой
|
|||
|---|---|---|---|
|
#18+
Nick_K_121просто почемуто такой вариант как-то не нравится... думал может что-то есть правильное... имхо, "совсем правильно" , т.е. DataProvider публикует событие о том что загрузка данных завершена (аналогично тому как это делает WebClient) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2010, 16:21 |
|
||
|
Помогите с Prism'ой
|
|||
|---|---|---|---|
|
#18+
Правильный вариант работы с асинхронными вызовами - Rx ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2010, 16:56 |
|
||
|
Помогите с Prism'ой
|
|||
|---|---|---|---|
|
#18+
Rx - из разряда must have Приблизительный вариант Код: plaintext 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2010, 19:37 |
|
||
|
|

start [/forum/search_topic.php?author=Hivensil&author_mode=last_posts&do_search=1]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
get settings: |
8ms |
get forum list: |
9ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
35ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
57ms |
get tp. blocked users: |
2ms |
| others: | 892ms |
| total: | 1043ms |

| 0 / 0 |
