|
0 / 0 / 0
Регистрация: 24.02.2022
Сообщений: 71
|
||||||||||||||||
WPF Сохранение данных из коллекции в файл (MVVM)24.11.2022, 12:47. Показов 4324. Ответов 45
Добрый день, форумчане!
Начал разрабатывать приложение на wpf+mvvm. Но столкнулся с отсутствием знаний с сохранением данных с учетом mvvm. Задача следующая: пользователь вводит данные, они сохраняются в коллекции ObservableCollection<T> и отображаются в DataGrid главного окна. Нужно сохранить эти данные, чтобы при повторном открытии приложения они снова отображались в DataGrid. При этом коллекцию нужно отсортировать по свойству модели (тип свойства DateTime). Искал, читал примеры по этой теме, но пока результата не добился ![]() Добавлено через 35 минут Класс модели:
0
|
||||||||||||||||
| 24.11.2022, 12:47 | |
|
Ответы с готовыми решениями:
45
WPF MVVM Бинарная сериализация коллекции классов Программное заполнение коллекции и отображение в DataGrid с использованием MVVM
|
|
Модератор
|
||
| 28.11.2022, 13:45 | ||
|
Если её прослушивают, то на каждый Add будет вызываться все прослушки. Нужно заглушить уведомление и вызвать один раз после полного добавления. В стандартной ObservableCollection это невозможно.
0
|
||
|
0 / 0 / 0
Регистрация: 24.02.2022
Сообщений: 71
|
|||
| 28.11.2022, 14:06 [ТС] | |||
|
Andrey-MSK, с СУБД уже практика была) И с SQLite, и c MySQL. Спасибо) Сейчас нужно с файлами разобраться
Добавлено через 3 минуты Подскажи еще, пожалуйста, почему свойство только для чтения?
0
|
|||
|
Модератор
|
|||||||||||||
| 28.11.2022, 14:18 | |||||||||||||
Например, в одном окне вы выводите это свойство:
SomeClass.Reminders = new (......);В результате получите в Окне вывод одних элементов, а в коде будете работать с другой коллекцией. И будете гадать: "Почему я меняю коллекцию, а Окно не обновляется?".
1
|
|||||||||||||
|
0 / 0 / 0
Регистрация: 24.02.2022
Сообщений: 71
|
|
| 28.11.2022, 14:18 [ТС] | |
|
0
|
|
|
Модератор
|
|||
| 28.11.2022, 14:21 | |||
|
Надо протестировать. Добавлено через 1 минуту
0
|
|||
|
0 / 0 / 0
Регистрация: 24.02.2022
Сообщений: 71
|
|
| 28.11.2022, 14:24 [ТС] | |
|
0
|
|
|
Модератор
|
|||||||
| 28.11.2022, 14:26 | |||||||
|
Nickolass, ошибочка...
Чуть неверно реализовал методы Range:
К этому времени уже сам стал другим объяснять как и что делать, писать какие-то гайды. Можете по истории моих тем, вопросов на Форуме посмотреть.
0
|
|||||||
|
0 / 0 / 0
Регистрация: 24.02.2022
Сообщений: 71
|
||
| 28.11.2022, 14:34 [ТС] | ||
|
Элд Хасп, вот тут не совсем понимаю как использовать этот класс.
0
|
||
|
|
||
| 28.11.2022, 15:04 | ||
List<T>, а потом уже переводите в ObservableCollection<T> при загрузке VM. По крайней мере при работе с СУБД это работает очень быстро.
1
|
||
|
Модератор
|
|||||||
| 28.11.2022, 15:12 | |||||||
|
Обычно такие классы добавляются в отдельный проект типа "Библиотека классов". В основном проекте задаётся ссылка на проект библиотеки. Типы из не1ё потом используются как обычные .Net типы. Добавлено через 2 минуты С этим классом обновление будет таким:
1
|
|||||||
|
0 / 0 / 0
Регистрация: 24.02.2022
Сообщений: 71
|
|
| 28.11.2022, 15:21 [ТС] | |
|
Элд Хасп, спасибо еще раз) Буду разбираться. Можно по вашему коду здесь если что вопросы позадавать в будущем? (если появятся)
0
|
|
|
0 / 0 / 0
Регистрация: 24.02.2022
Сообщений: 71
|
|
| 28.11.2022, 15:28 [ТС] | |
|
0
|
|
|
0 / 0 / 0
Регистрация: 24.02.2022
Сообщений: 71
|
||||||
| 15.12.2022, 11:42 [ТС] | ||||||
|
Элд Хасп, доброго дня!) Подскажите, пожалуйста, в чем может быть проблема? Ищу путь к папке через код:
"D:\\User\\Documents\\Visual Studio 2022\\WPF\\MemoryRefresher\\MemoryRefres her.Net\\bin\\Debug\\net6.0-windows\\\\..\\..\\..\\Data\\Reminders\" Причем (повторюсь) раньше с этим кодом путь прописывался правильный, а теперь какой-то бред...
0
|
||||||
|
|
||
| 15.12.2022, 11:53 | ||
|
Добавлено через 1 минуту Nickolass, Описание путей: абсолютных, относительных, UNC и URL
0
|
||
|
0 / 0 / 0
Регистрация: 24.02.2022
Сообщений: 71
|
|||||||||||
| 15.12.2022, 11:59 [ТС] | |||||||||||
|
Andrey-MSK, Я это знаю) Только вверх не поднимается почему-то
Добавлено через 3 минуты Из этой строчки
"D:\\User\\Документы\\Visual Studio 2022\\WPF\\NewTestMemory\\MemoryRefreshe r.Net\\bin\\Debug\\net6.0-windows" А из этой:
В итоге ловлю ошибку, что путь не найден
0
|
|||||||||||
|
|
|
| 15.12.2022, 12:04 | |
|
0
|
|
|
Модератор
|
|||||||
| 15.12.2022, 12:13 | |||||||
net6.0-windows четыре слеша \\\\? То есть, без экранировки два слеша подряд.Вы явно не таким образом раньше получали строку. Вам нужно:
Path.Combine, если по факту вы сами задаёте путь неправильной конкатенацией.Поручите это методу. Пусть он сам верно комбинирует отрезки пути.
0
|
|||||||
|
0 / 0 / 0
Регистрация: 24.02.2022
Сообщений: 71
|
||
| 15.12.2022, 12:21 [ТС] | ||
|
Andrey-MSK,
по факту на 3 каталога выше) Представьте, ничего не менял, а заработало... Само блин) Чего-то может в системе глюкнуло?) Добавлено через 7 минут Элд Хасп,
0
|
||
|
Модератор
|
||
| 15.12.2022, 12:28 | ||
var path.Добавлено через 56 секунд И какую ошибку выдавало: некорректный путь, нет файла, другое?
0
|
||
| 15.12.2022, 12:28 | |
|
Занесение данных в ListView1 и сохранение данных из переменных в текстовый файл JavaFx, сохранение данных в файл и загрузка данных из файла Сохранение данных в файл Сохранение данных в файл Сохранение данных в файл Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Запустил конкурс "тем и промптов для текстовых квестов созданных почти чисто ИИ"
Adler 06.10.2026
Всем привет!
За последние три-четыре дня я создал более 16 текстовых квестовых игр используя преимущественно по одному запросу к ИИ на игру. Мне так понравилось смотреть все ветки/ сцены во всех. . .
|
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык.
Возвращает он вот это:
https:/ / i. **********/ vqBWLe2. png
Нужную строчку в 3й колонке просто выдумал. .
Это. . .
|
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor.
Это. . .
|
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js.
В помощники взял Яндекс-Алису.
Было создано три зала на разные интересы.
исторические и ретро
сериал Хичкок. . .
|
|
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
|
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#.
Название изменил на ColorStep.
Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
|
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами:
- ВидТО (СправочникСсылка. ВидыТО);
- ВидГСМ. . .
|
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала.
Ниже прикреплён. . .
|