Сообщение Re[4]: Глобальное состояние приложения - хорошая ли идея? от 06.09.2025 22:22
Изменено 06.09.2025 22:26 Shmj
Re[4]: Глобальное состояние приложения - хорошая ли идея?
Здравствуйте, Qulac, Вы писали:
Q>Но он там обычно есть, например MainFormViewModel.
MainFormViewModel — содержит же исключительно то, что относится к главной форме. И не содержит в себе данные дочерних форм.
Кроме того, если подумать — ViewModel вообще не должна содержать данных/полей. Есть Model. Так же есть IValueConverter — если какое-то значение из Model тебе нужно в UI отобразить особым образом (к примеру — статус преобразовать в цвет). Т.е. по сути ViewModel не должно содержать цветов, паттернов для преобразования времени в строку и пр. — это все в конвертеры. Так накой же этот ViewModel вообще нахрен сдался? Получается в нем только постоянные обертки и ничего более. Кроме оберток над полями Model — что там еще может быть (если учесть — что цвета и строки для даты — это утечка абстракции)?
Q>Но он там обычно есть, например MainFormViewModel.
MainFormViewModel — содержит же исключительно то, что относится к главной форме. И не содержит в себе данные дочерних форм.
Кроме того, если подумать — ViewModel вообще не должна содержать данных/полей. Есть Model. Так же есть IValueConverter — если какое-то значение из Model тебе нужно в UI отобразить особым образом (к примеру — статус преобразовать в цвет). Т.е. по сути ViewModel не должно содержать цветов, паттернов для преобразования времени в строку и пр. — это все в конвертеры. Так накой же этот ViewModel вообще нахрен сдался? Получается в нем только постоянные обертки и ничего более. Кроме оберток над полями Model — что там еще может быть (если учесть — что цвета и строки для даты — это утечка абстракции)?
Re[4]: Глобальное состояние приложения - хорошая ли идея?
Здравствуйте, Qulac, Вы писали:
Q>Но он там обычно есть, например MainFormViewModel.
MainFormViewModel — содержит же исключительно то, что относится к главной форме. И не содержит в себе данные дочерних форм.
Кроме того, если подумать — ViewModel вообще не должна содержать данных/полей. Есть Model. Так же есть IValueConverter — если какое-то значение из Model тебе нужно в UI отобразить особым образом (к примеру — статус преобразовать в цвет). Т.е. по сути ViewModel не должно содержать цветов, паттернов для преобразования времени в строку и пр. — это все в конвертеры. Так накой же этот ViewModel вообще нахрен сдался? Получается в нем только постоянные обертки и ничего более. Кроме оберток над полями Model — что там еще может быть (если учесть — что цвета и строки для даты — это утечка абстракции)?
ViewModel как бы одна большая обертка, чтобы над полями Model добавить эти вызовы OnPropertyChanged. Но! Не разумнее ли это отдать на откуп среды/компилятора прямо в Model? Просто не подумали об этом и добавили ручную работу и лишние слои.
Тогда во ViewModel останутся команды эти — но уже и назвать нужно по-другому, т.к. к Model оно отношения не имеет. Это контроллер будет или что-то типа того.
Q>Но он там обычно есть, например MainFormViewModel.
MainFormViewModel — содержит же исключительно то, что относится к главной форме. И не содержит в себе данные дочерних форм.
Кроме того, если подумать — ViewModel вообще не должна содержать данных/полей. Есть Model. Так же есть IValueConverter — если какое-то значение из Model тебе нужно в UI отобразить особым образом (к примеру — статус преобразовать в цвет). Т.е. по сути ViewModel не должно содержать цветов, паттернов для преобразования времени в строку и пр. — это все в конвертеры. Так накой же этот ViewModel вообще нахрен сдался? Получается в нем только постоянные обертки и ничего более. Кроме оберток над полями Model — что там еще может быть (если учесть — что цвета и строки для даты — это утечка абстракции)?
ViewModel как бы одна большая обертка, чтобы над полями Model добавить эти вызовы OnPropertyChanged. Но! Не разумнее ли это отдать на откуп среды/компилятора прямо в Model? Просто не подумали об этом и добавили ручную работу и лишние слои.
Тогда во ViewModel останутся команды эти — но уже и назвать нужно по-другому, т.к. к Model оно отношения не имеет. Это контроллер будет или что-то типа того.