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

Хочешь навигацию? напиши сам или найди либу и так почти с

любой хуйней

22 ответов

14 просмотров

Ну вообще связь модулей и навигация - одна из главных проблем и сложностей архитектуры приложений

там навигация пишется на раз два. через передачу VM, а V подгружается сама по DataTemplate

Tako- Автор вопроса
F
там навигация пишется на раз два. через передачу ...

ну яж не спорю,но все равно почему если это так просто не дать это из коробки? Ну и есть куда более сложносоставленный случаи

Tako- Автор вопроса
Tako
ну яж не спорю,но все равно почему если это так пр...

по тому что навигация может быть очень разной, она может быть супер простой, а может быть очень сложной, с сохранением состояний, истории, перескоками и т.п.

F
а что смешного?

Да когда у тебя переход по кнопке все проссто… А иногда у тебя сложный процесс последовательность и набор шагов которого зависит от различных факторов

Alexander Zalutskiy
Да когда у тебя переход по кнопке все проссто… А и...

не знаю, мне нужен конкретный кейс. сложностей сложный интерфейс с навигацией сделать не было проблем

F
не знаю, мне нужен конкретный кейс. сложностей сл...

У тебя есть модуль отвечающий за оплату. Лежит в отдельной библиотеке. Несколько экранов со своими переходами и прочим. Используется много где. Есть модуль кастомных форм который умеет собирать и формировать платежные данные по форме пришедшей с веба. Причем эти формы могут быть многошаговыми. Лежит в отдельной библиотеки, так как может использоваться по сути где угодно и никак не привязан ни к какому процессу. У тебя есть штук 5-6 экранов для активации банковской карты. Последовательность и набор этих экранов зависят от статуса пользоватя, вида карты и прочей ерунды. Оплата или витрина в зависимости от типа пользователя и карты тоже могут присутствовать/отсутствовать. Из всего этого тебе нужно собрать единый процесс. Не изменяя модуль оплаты и динамических форм. Потому-что они не должны ничего знать об активации и выпуске карт.

Alexander Zalutskiy
У тебя есть модуль отвечающий за оплату. Лежит в о...

вновь, не вижу проблемы. есть ViewModel которая может в себе собирать как другие VM так и модели данных, отображая всё красивенько и без вмешательств

F
вновь, не вижу проблемы. есть ViewModel которая м...

Кто будет решать куда надо переходить?) Сколько у тебя активных кнопок перехода во всем процессе? Ты будет каждый экран отдельно биндить на отдельный метод перехода? ViewModel будут между собой общаться? Если нет, то как основная ViewModel узнает о том что процесс полаты или заполнения формы завершен?)

Alexander Zalutskiy
Кто будет решать куда надо переходить?) Сколько у ...

я не знаю сколько кнопок, но одна кнопка может иметь разные варианты событий, в зависимости от условий ввода

F
я не знаю сколько кнопок, но одна кнопка может име...

Кстати да, тут еще и в любом шаге ты можешь вернуться назад))

Alexander Zalutskiy
Будешь ViewModel откатывать?)

ну я в стек херачил вюмодели просто. или в некоторых моментах на синглтонах, зависит

Alexander Zalutskiy
Кстати да, тут еще и в любом шаге ты можешь вернут...

так данные отображаются не за счёт создания VM, а за счёт Model, которая адоптируется через VM и показывает то что надо. Надо вернуться — просто берём прошлую VM из стека навигации, или пересоздаём на основе её данных

F
так данные отображаются не за счёт создания VM, а ...

Но ты предлагал встраивать одну ViewModel в другую. Не попадет ли у тебя в какой-то момент на stack модель внутреннего модуля (заполнения формы) вместо модели всего процесса? И если ты вернулся назад, то модуль формы ожидает найти на стеке свою ViewModel

Alexander Zalutskiy
Но ты предлагал встраивать одну ViewModel в другую...

тяжко вот это представить. Но думаю проблем сохранить состояние не составит сложности ,если нужно такое поведение

F
тяжко вот это представить. Но думаю проблем сохран...

А если у них разные стеки, то проблема в том, что изменение одной из вложенных VM может не вызвать изменения на другом стеке, или что еще хуже, усли ты не копируешь модели, то изменение все VM на стеке

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

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

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
Ребят в СИ можно реализовать ООП?
Николай
33
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта