|
96 / 76 / 25
Регистрация: 18.02.2016
Сообщений: 771
|
|||||||||||||||||||||
MVVM postgres17.06.2020, 10:41. Показов 18124. Ответов 200
Метки нет (Все метки)
учу mvvm
появилось много вопросов я создал модель Кликните здесь для просмотра всего текста
создал сервис , который должен заполнять данными я это сделал так Кликните здесь для просмотра всего текста
после чего в основном классе Кликните здесь для просмотра всего текста
и тут первый вопрос. можно это сделать без циклов ? например сразу конвертировать в BindingList и как вообще правильно заполнять данными из бд? дальше я показываю таблицу в view Кликните здесь для просмотра всего текста
и снова вопрос. мне нужно добавлять данные в BindingList и при событии добавления/удаления/изменения делать изменения в бд? Или просто делать запросы в бд update/insert и после этого заново заполнять данными? второе звучит проще и логичней для меня.
0
|
|||||||||||||||||||||
| 17.06.2020, 10:41 | |
|
Ответы с готовыми решениями:
200
Mvvm
|
|
96 / 76 / 25
Регистрация: 18.02.2016
Сообщений: 771
|
|
| 03.04.2021, 09:01 [ТС] | |
|
Как с помощью только view реализовать смену uc? Мне в голову приходит только 1 uc к примеру currentUС , в которой из основной vm передаётся uc которая нужна в данный момент.
0
|
|
|
Модератор
|
|
| 03.04.2021, 09:02 | |
|
onimor, разберитесь сначала почему у вас ошибка БД не подымается по стеку.
После чего я бы вам посоветовал изменить структуру приложения для лучшего понимания разделения функционала слоёв. Так будет несколько больше кода, но зато вы поймёте зоны ответственности каждого слоя.
1
|
|
|
96 / 76 / 25
Регистрация: 18.02.2016
Сообщений: 771
|
|
| 03.04.2021, 09:03 [ТС] | |
|
0
|
|
|
Модератор
|
||
| 03.04.2021, 09:09 | ||
|
- свойство VM имеет базовый тип. В том числе возможно и object; - VM записывает в него экземпляры разных производных типов; - в View для каждого производного типа задан шаблон данных по умолчанию. В том числе может использоваться UserControl. - для представления свойства в Региона окна используется ContentPresenter или ContentControl: - к свойству VM привязан Content Региона. На этом всё. Если явно не задаётся ContentTemplate, то для каждого типа будет использоваться свой Шаблон Данных по умолчанию. Добавлено через 1 минуту onimor, по схеме выше. Каждый блок - это отдельный проект. Стрелка - это ссылка (или зависимость) из одного проекта на другой.
1
|
||
|
96 / 76 / 25
Регистрация: 18.02.2016
Сообщений: 771
|
|
| 03.04.2021, 09:23 [ТС] | |
|
0
|
|
|
96 / 76 / 25
Регистрация: 18.02.2016
Сообщений: 771
|
|
| 03.04.2021, 09:24 [ТС] | |
|
0
|
|
|
96 / 76 / 25
Регистрация: 18.02.2016
Сообщений: 771
|
|
| 03.04.2021, 09:31 [ТС] | |
|
P.S. сброс настроек не помог
0
|
|
|
Модератор
|
||||||
| 03.04.2021, 09:50 | ||||||
|
onimor, а где входная страница?
Из этой схемы просматривается следующее: 1) Регион Окна имеет два разных представлений: для показа поста и для показа настроек; 2) Смена выбранного поста изменяет привязку UC для камер постов, но сам UC остаётся прежним; 3) В меню управления (левый регион) разделено выбор постов и настройки; 4) Реализация левого региона по сути тоже состоит из двух отдельных Регионов: списочный элемент для выбора поста и снизу кнопки для других режимов; 5) Контролы для показа поста и настроек, совершенно, никак не связаны друг с другом. Мои выводы (без учёта пункта "Показать Журнал"): 1) Управляющие функции навигатора находятся в левом регионе; 2) Управление навигацией не связанно с изменением данных; 3) Так как это не имеет отношения к данным, то реализовываться должно в View, а не в VM. Примерный псевдокод:
1) Изначально Content = null: 2) В параметр команды передаётся нужный контент для переключения: SettingsVM, выбранный пост и др. 3) По команде проверяется параметр, если это допустимый Контент, то он записывается в Content; 4) При выборе поста (изменении SelectedPost) вызывается команда с этим постом; 5) В окне в регионе у контрола (ContentPresenter или ContentControl) в ресурсах заданы Шаблоны Данных по умолчанию для настроек и поста; 6) Свойство Content привязано к свойству Content навигатора.
1
|
||||||
|
96 / 76 / 25
Регистрация: 18.02.2016
Сообщений: 771
|
|
| 03.04.2021, 09:53 [ТС] | |
|
0
|
|
|
Модератор
|
|||
| 03.04.2021, 09:54 | |||
|
Видео, что у меня работает это Решение - я показал. Различия у нас только в самой Студии. Может настройки, может баг какой-то, может ещё что - я не знаю с чем это может быть связано. В тестовом решении (где я сделал вывод ошибки в окно) у вас тоже прерывается выполнение программы и до вывода текста ошибки исполнение не доходит? Добавлено через 37 секунд Или у него своё окно?
0
|
|||
|
96 / 76 / 25
Регистрация: 18.02.2016
Сообщений: 771
|
||||
| 03.04.2021, 10:01 [ТС] | ||||
|
Добавлено через 5 минут
0
|
||||
|
Модератор
|
||
| 03.04.2021, 10:02 | ||
|
onimor, если у вас есть изменения в Решении - сделайте фиксацию.
Я подготовлю тестовый проект для вопроса в разделе ADO-БД. Добавлено через 50 секунд Непосредственно друг с другом они не связаны.
0
|
||
|
96 / 76 / 25
Регистрация: 18.02.2016
Сообщений: 771
|
|||
| 03.04.2021, 10:05 [ТС] | |||
|
Добавлено через 1 минуту
0
|
|||
|
Модератор
|
||
| 03.04.2021, 10:08 | ||
|
Оно не будет влиять на основное Решение. Необходимости в отдельной ветке не вижу. Добавлено через 20 секунд Но если хотите - создайте. Как закончите - сообщите.
0
|
||
|
96 / 76 / 25
Регистрация: 18.02.2016
Сообщений: 771
|
||
| 03.04.2021, 10:13 [ТС] | ||
|
0
|
||
|
Модератор
|
||
| 03.04.2021, 10:43 | ||
|
После синхронизации запустите тестовое Решение, нажмите кнопку "Загрузить" и должно выйти вот такое окно: ![]() Если не выйдет - создайте тему в разделе ADO-БД с вопросом почему исключение не подымается. И дайте ссылку на тестовое Решение и его архив.
1
|
||
|
96 / 76 / 25
Регистрация: 18.02.2016
Сообщений: 771
|
||
| 03.04.2021, 16:39 [ТС] | ||
|
Элд Хасп, постараюсь вечером проверить
Добавлено через 5 часов 23 минуты Позже создам. Пока это не настолько важно. Если запустить приложение из папки, без студии, то ловится.
0
|
||
|
96 / 76 / 25
Регистрация: 18.02.2016
Сообщений: 771
|
|||||||
| 07.04.2021, 15:34 [ТС] | |||||||
0
|
|||||||
|
Модератор
|
||
| 07.04.2021, 15:45 | ||
|
При смене самих данных (переключении) к ним применяется наиболее подходящий шаблон. При применении шаблона все UI элементы его фабрики создаются заново. А вы какое хотели получить поведение?
1
|
||
| 07.04.2021, 15:45 | |
|
MVVM Model в MVVM Mvvm datagrid ef WPF MVVM MVVM патерн Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Калькулятор для расчета родства
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).
Что означает, что принтеры могут печатать только латиницу и китайские иероглифы. Так же. . .
|
Создание формы заимствованного документа
Maks 03.08.2026
Задача:
Необходимо создать собственную форму заимствованного документа. На форме должен быть реквизит "Покупатель", а также
табличная часть со следующими реквизитами:
- Расчетный счет покупателя. . .
|
Задача предоставления скидок покупателям
Maks 03.08.2026
Задача:
В документе "Продажи" необходимо реализовать функционал предоставления скидок покупателям. Скидка должна автоматически рассчитываться и подставляться в соответствующее поле при выборе. . .
|