9 / 8 / 2
Регистрация: 20.02.2018
Сообщений: 94
|
||||||
1 | ||||||
UWP Как при запуске приложения загрузить данные из файла?18.02.2019, 20:20. Показов 2400. Ответов 7
Метки нет (Все метки)
Здравствуйте!
Для загрузки данных из файла - есть статический класс и в нём асинхронный метод типа:
После начальной загрузки надо ещё сделать кое-какие действия. Как это обычно делается?
0
|
18.02.2019, 20:20 | |
Ответы с готовыми решениями:
7
Загрузить в ListBox данные из текстового файла при запуске формы Необходимо считать данные из сетуп файла на веб сервере при запуске приложения Как сохранить числовые данные, чтобы они были доступны при следующем запуске приложения? Как проще получить локальный путь при запуске файла приложения |
Модератор
|
|
18.02.2019, 21:46 | 2 |
В самом простом виде.
У Вас в приложении одно окно. При запуске приложения это окно начинает создаваться. В DataConrext окна (в Xaml или в CB) приписываете создание ViewModeL к свойствам которой привязаны элементы окна. ViewModel при создании обращается за данными к Model (в частности к методу загрузки данных из файла) и полученные данные "распихивает" по своим свойствам. Элементы окна по привязкам отображают эти свойства.
0
|
9 / 8 / 2
Регистрация: 20.02.2018
Сообщений: 94
|
|
18.02.2019, 22:57 [ТС] | 3 |
ViewModel при создании (т.е. в конструкторе - не хочет обращаться к асинхронному методу). Вот засада в чём.
0
|
Модератор
|
|
18.02.2019, 23:48 | 4 |
Не знал за такой нюанс.... У меня (попробовал сейчас) в редакторе VS ошибки не даёт.
Завтра погоняю примеры, но по идее такого быть не должно. Хотя кто его знает...
0
|
9 / 8 / 2
Регистрация: 20.02.2018
Сообщений: 94
|
||||||
19.02.2019, 00:56 [ТС] | 5 | |||||
Я наверное может как-то неправильно организовал структуру...
У меня при запуске создаётся одна основная ViewModel. И вот она должна сама в себя при создании (т.е. где-то наверное в конструкторе) загрузить данные из файла (или из базы данных). И вот не даёт из конструктора вызывать асинхронный метод в другом статическом классе. Создаётся VM стандартно в App.xaml.cs:
И получается так: - из конструктора VM не может передать сама себя как ссылку ref в асинхронный метод (чтобы заполниться данными) Вот в этом проблема: Асинхронные методы не могут иметь параметры ref, in или out Я, попробовал разные варианты, реализовал кое-как загрузку данных "через костыли" - т.е. при открытии первой (основной) страницы приложения запускается загрузка. Но не уверен, что это правильно. Как быть? Как вообще "по стандарту" загружаются данные из базы при запуске приложения? В смысле - в какой момент и откуда?
0
|
Модератор
|
|
19.02.2019, 09:40 | 6 |
VM и не должна себя передавать в модель. Это путаница какая-то.
Точно посоветовать не могу - не совсем понимаю как у Вас там всё организованно. В коде не видно где Вы используете ref или out параметры. Но можно переделать метод LoadDataAsync в функцию, что бы он мог возвращать данные. Добавлено через 5 минут Модель должна получить данные из источников. После получения данных известить об этом VM. И VM, если ей надо, запросит нужные данные у Модели. Прочитайте тему INPC и получение данных из Модели в цикле Готовые решения, примеры и рекомендации начинающим на WPF [Элд Хасп]
1
|
9 / 8 / 2
Регистрация: 20.02.2018
Сообщений: 94
|
|
19.02.2019, 13:30 [ТС] | 7 |
Спасибо!
Пока для себя решил так: заполнять VM не во время её создания, а уже после её создания. Придётся, видимо, всё-таки почитать и поразбираться что такое модель, а что такое viewmodel. Пока вот никак времени не найду. Однако - хорошо бы выложил бы кто-нибудь пример или ссылку на образец: Как при запуске приложения UWP загружать в него данные из базы данных, например? Т.е. опять же, чтобы показать - как это правильно делать: где и в какой момент обращаться к БД при запуске?
0
|
Модератор
|
|
19.02.2019, 13:54 | 8 |
Поищите по форуму в этом разделе, в разделе для начинающих, в Ado - должны быть примеры.
0
|
19.02.2019, 13:54 | |
19.02.2019, 13:54 | |
Помогаю со студенческими работами здесь
8
Данные не отображаются на форме при запуске приложения Файл: Нужно при запуске программы загрузить из txt-файла список в MainMenu... "Невозможно загрузить файл или сборку" при запуске приложения на .net 3.5.1 Копирование файла при запуске приложения Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |