170 похожих чатов

Доброго дня. подскажите способы передачи инфы между несвязанными VM в MVVM. Задача

следующая.
Есть маршрутный лист, что то типа анкеты.
я разбил ее на 7 секций.
для простоты возьмем

1 секция - общие данные содержит
Начало
конец работы.

7 секция Коллекция работ
номер станции
прибытие
отправление

все секции побиты на отдельные VM много инфы для одной вьюхи.

задача сделать валидацию по правилам при вводе.
например в 7 секции прибытие должно быть между началом и концом работы (1 секция).

1) как мне передать данные из VM 1 секции в VM 7 секции не связывая их.
И отслеживать изменения в рантайме пиная валидатор
2) Кто должен проводить валидацию. Сама VM 7 секции? или отдельный класс ?

Пока нашел только 2 способа
1) Паттерн сообщения - создать статик объект через который передавать все изменения
и он будет рассылать подписчикам нужные сообщения. (не нравятся статик синглтон объекты)
2) Передать VM друг-другу (совсем не нравится ибо связанность большая получится)

может есть еще какие патерны передасты?

2 ответов

18 просмотров

MessageBus это называется. Но можешь глянуть сюда https://assets.ctfassets.net/9n3x4rtjlya6/2uWcg6Juw8OoCKEUW00QuQ/d2f889fa34e2b323f3ef409743456d4c/Denis_Tsvettsih._How_to_live_without_MessageBus_on_UI.pdf А вообще вся инфа же должна из модели дергаться. То есть тебе не нужно передавать инфу между vm, тебе нужно просто обновлять состояние модели. И можешь глянуть в сторону zeromq ещё.

boomsa- Автор вопроса
Anton 『被遗忘的社会』
MessageBus это называется. Но можешь глянуть сюда...

Хм. И сделать валидатор для модели. И проверять её свойства? И заполнять inotifydataerror у vm идея

Похожие вопросы

Обсуждают сегодня

Добрый вечер. Есть вопрос, а может и предложение. Был у меня диалог в другой группе о делфи и я задался вопросом: "А нельзя ли в делфи цвет //коментария и {комментария} сде...
Kraszx
24
Всем привет! Подскажи, пожалуйста, как передать в TComboBox сразу значение и id записи. На Delphi я делал так: ComboBox1.Items.AddObject('Какое-то значение', Pointer(id запис...
Евгений
13
Мдя, прикол, боевая сборка запускается (именно под отладчиком) после F9 примерно полторы минуты (97 секунд если быть точным). Начал копать - проблема детектится сразу - зависа...
Александр (Rouse_) Багель
38
Здравствуйте, вопрос по структурам данных. Были у вас случаи, когда пришлось писать деревья или двунаправленные списки?
/ /
50
Товарищи, кто работа с iphelper? Или может я в самой логике ошибки фигачу, не пойму.... var ifTable : PMIB_IFTABLE; size, corSize: DWORD; Buffer ...
Warfarellen
4
я так понимаю, я так подозреваю, что создание такого плагина для человека, кто умеет писать плагины для делфи потребует минут 5-10 времени. но это мое подозрение. хотелось бы ...
Kraszx
7
Коллеги, добрый вечер. Создаю коллекцию от TFPGMap, ключ - перечисление, значение - целое. Нужно отсортировать коллекцию по значению. Как это можно сделать?
Kirill Filippenok
11
Скажи а ты когда этот канал создавал ты уже дельфи не любил, или это со временем пришло?
Роман Лях (rgreat)
18
Привет, такой вопросик появился кажется ли вам что Rust слишком сложный/строгий для высокоуровневого программирования и слишком "безопасный"/строгий для низкоуровневого?
Крокант
10
Всем привет! Использую кастомное модальное диалоговое окошко, все по классике - mrOK, mrCancel как ModalResult. Однако есть нюанс - в главной форме есть универсальный обработч...
Олег Гранишевский
20
Карта сайта