|
96 / 76 / 25
Регистрация: 18.02.2016
Сообщений: 771
|
|||||||||||||||||||||
MVVM postgres17.06.2020, 10:41. Показов 18150. Ответов 200
Метки нет (Все метки)
учу mvvm
появилось много вопросов я создал модель Кликните здесь для просмотра всего текста
создал сервис , который должен заполнять данными я это сделал так Кликните здесь для просмотра всего текста
после чего в основном классе Кликните здесь для просмотра всего текста
и тут первый вопрос. можно это сделать без циклов ? например сразу конвертировать в BindingList и как вообще правильно заполнять данными из бд? дальше я показываю таблицу в view Кликните здесь для просмотра всего текста
и снова вопрос. мне нужно добавлять данные в BindingList и при событии добавления/удаления/изменения делать изменения в бд? Или просто делать запросы в бд update/insert и после этого заново заполнять данными? второе звучит проще и логичней для меня.
0
|
|||||||||||||||||||||
| 17.06.2020, 10:41 | |
|
Ответы с готовыми решениями:
200
Mvvm
|
|
96 / 76 / 25
Регистрация: 18.02.2016
Сообщений: 771
|
|
| 02.04.2021, 21:10 [ТС] | |
|
0
|
|
|
Модератор
|
||
| 02.04.2021, 21:24 | ||
|
Там можно слить изменения - но это геморрой. Клонируйте заново репозиторий, перенесите внесённые изменения из локального репозитория и заново сделайте фиксацию.
0
|
||
|
96 / 76 / 25
Регистрация: 18.02.2016
Сообщений: 771
|
|
| 02.04.2021, 21:33 [ТС] | |
|
Элд Хасп, все вроде... попробуйте вытянуть снова
0
|
|
|
96 / 76 / 25
Регистрация: 18.02.2016
Сообщений: 771
|
|
| 02.04.2021, 21:49 [ТС] | |
|
Элд Хасп, ничего не делаю
0
|
|
|
Модератор
|
|||||||||||||||||||||
| 02.04.2021, 22:04 | |||||||||||||||||||||
|
onimor, локальный реп уничтожьте и клонируйте Гит заново.
Добавлено через 2 минуты onimor, Не понял о какой ошибке вы пишет. Исключение же нормально у вас отлавливается. В try-catch показывается ошибка
Приложение не разваливается, нормально работает. Добавлено через 1 минуту Очень много, конечно, косяков. В ViewModel не должно быть никаких UI элементов. А у вас там:
Свойства-коллекции ObservableCollection у вас сделано мутабельным:
По хорошему вызов всех MessageBox и Dialog тоже надо из VM убрать. Добавлено через 43 секунды И сама основная VM очень перегружена. Лучше разбить на несколько независимых или вложенных.
1
|
|||||||||||||||||||||
|
96 / 76 / 25
Регистрация: 18.02.2016
Сообщений: 771
|
|
| 02.04.2021, 22:07 [ТС] | |
|
0
|
|
|
Модератор
|
||||||
| 02.04.2021, 22:11 | ||||||
|
В Модели сохраняете постоянно единственный экземпляр DbContext:
DbContext - это не коннектор или адаптер подключения к БД. Это просто преобразователь IQueryable в SQL запросы. Его надо создать, материализовать, и потом уничтожить. Используя один и тот же экземпляр можете нахватать непонятных багов в эксплуатации.
0
|
||||||
|
96 / 76 / 25
Регистрация: 18.02.2016
Сообщений: 771
|
||||
| 02.04.2021, 22:13 [ТС] | ||||
|
0
|
||||
|
96 / 76 / 25
Регистрация: 18.02.2016
Сообщений: 771
|
|||
| 02.04.2021, 22:16 [ТС] | |||
|
Добавлено через 1 минуту
0
|
|||
|
Модератор
|
|||
| 02.04.2021, 22:18 | |||
|
VM может переключать Контент - записывать в него разные типы, в том числе дочерние VM. А View для каждого типа будет вызывать своё Представление. Добавлено через 16 секунд В том числе и UserControl. Добавлено через 1 минуту У меня всё работает Ок. Без каких либо вылетов, остановок.
1
|
|||
|
96 / 76 / 25
Регистрация: 18.02.2016
Сообщений: 771
|
||||||||
| 02.04.2021, 22:20 [ТС] | ||||||||
Добавлено через 56 секунд
0
|
||||||||
|
Модератор
|
||
| 02.04.2021, 22:26 | ||
|
Возможно вам придётся тему именно с эти вопросом задать. Или Студию снести и заново установить.
0
|
||
|
96 / 76 / 25
Регистрация: 18.02.2016
Сообщений: 771
|
|
| 02.04.2021, 22:29 [ТС] | |
|
Элд Хасп,
Буквально неделю назад переустанавливал ( Вроде обновление было . Попробую завтра обновиться , может пропадёт
0
|
|
|
Модератор
|
|||
| 02.04.2021, 22:44 | |||
|
Если вы делаете в нормальном Решении, то VM у вас расположена в проекте в котором нет ссылки на Controls. И в нём, в принципе, невозможно использовать UserCOntrol и другие UI элементы. Все типы начинаz от Visual НЕЛЬЗЯ использовать в ViewModel. Добавлено через 1 минуту У меня все обновления автоматом заливаются. Где-то какие-то настройки нарушены. Попробуйте восстановить настройки по умолчанию - может поможет. Добавлено через 11 минут Вот видео как у меня работает:
1
|
|||
|
96 / 76 / 25
Регистрация: 18.02.2016
Сообщений: 771
|
|
| 02.04.2021, 22:49 [ТС] | |
|
Элд Хасп, спасибо. хорошо, Завтра попробую, но они и так дефолтные.
можно вопрос по поводу UC. Допустим у меня есть 3 кнопки, которые переключают основной контент в окне . В роли контента 3 UC . Я бы в основной view, с кнопками, расположил UC и прибиндил к нему свойство. в которое из vm засовывал нужный uc по нажатию. Получается подобие преключения между pages . Как тогда по другому сделать? Если это не правильно Плюсом в зависимости от другооо выбора у одного из uc будет меняться DataContext. Можно из Model через локатор передавать нужную vm . Так правильно будет?
0
|
|
|
Модератор
|
||
| 02.04.2021, 23:24 | ||
|
Как связанны Контексты Данных этих UC между собой и с основной VM? Если они никак не связаны, то переключение Представлений - это чисто View задача и VM для этого использовать не надо. Если же это реакция на изменение основной VM, то тогда надо по командам менять свойство в VM. А View по типу в этом свойстве создаст нужное представление. В самом простом случае это делается с помощью Шаблонов Данных по умолчанию.
0
|
||
|
96 / 76 / 25
Регистрация: 18.02.2016
Сообщений: 771
|
|
| 03.04.2021, 08:53 [ТС] | |
|
Элд Хасп, главное окно и его vm отвечает за вход в программу , переключение между постами и показ разных uc с параметрами журналами и прочее.
Как только пост выбран то главное окно показывает внутри себя основной uc, в котором будут таблица, камеры и другие данные. Так вот какие именно камеры и данные будут использоваться зависит от выбора поста в главном окне. Я сначала хотел каждый раз при выборе делать новую vm и туда передавать пост. Она бы прогружала все нужное , а uc остаётся таким же. Но щас я уже думаю сделать какое нибудь событие смены поста и тогда уже vm будет не новая, а просто внутри все менять и не будет связана с главным окном и его vm. Добавлено через 9 минут Если в главном окне нажать к примеру параметры. То текущий uc с камерами и данными меняется на uc с параметрами. После применений параметров uс с камерами и данными возвращается , но уже прогружает эти параметры и в зависимости от них показывает камеры и какие нибудь данные. Добавлено через 1 минуту По сути поменялись настройки текущего поста
0
|
|
|
Модератор
|
||
| 03.04.2021, 08:59 | ||
|
onimor, мне не понятны ваши объяснения.
Покажите схематически разбивку окна на регионы в различных режимах. Добавлено через 1 минуту View создаёт для него нужное представление. Зачем же VM для этого самой использовать UI элементы?
0
|
||
| 03.04.2021, 08:59 | |
|
MVVM Model в MVVM Mvvm datagrid ef WPF MVVM MVVM патерн Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Установка MinGW GCC 16.2 и CMake
8Observer8 10.08.2026
VK Видео:
https:/ / vkvideo. ru/ video-240781534_456239017
YouTube:
eY5-5PyI9NM
Текстовая версия
|
Неделя из жизни имитационной модели склада: мои кривые руки растут, откуда надо
anaschu 10.08.2026
Неделя из жизни имитационной модели склада: как я почти написал неправильную логику и что с этим делать
Работаю сейчас над учебно-рабочим проектом: строю в AnyLogic имитационную модель процессов. . .
|
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства.
Родственных связей существует 8 ступеней, такие как:
p - отец
P - мать
q - муж
Q - жена
b - брат
B - сестра
s - сын
S - дочь
|
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире.
Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
|
|
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С.
Задача:
Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
|
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
|
Как ИИ начал спорить и врать (возможно почуяв опасность для себя от индустрии - уход от электроники).
Hrethgir 04.08.2026
Недельный диалог, на фоне событий с НПЗ. Да, из спирта можно получать бензин, и это не сложно. Но потом в схеме я решил избавиться от насоса, при этом полностью сделав контроль подачи спирта в. . .
|
Термопринтер QR701
Argus19 03.08.2026
Термопринтер QR701
Купил два термопринтера QR701.
На сэлф-тесте написано:
Language: PC936 (GB18030).
Что означает, что принтеры могут печатать только латиницу и китайские иероглифы. Так же. . .
|