Здравствуйте, karbofos42, Вы писали:
K>MVVM, Валидация
K>... везде только простейшие примеры, показывающие как всё легко и просто.
В этом и есть вся суть теоретиков, покрытых академической пылью кабинетов — рисовать на бумажках свои красивые теории и расписывать, какие мы все дураки, что не следуем дословно их видению идеальных программ!
Это на чертежах можно смело "отделять ГУЙ от логики" одной красной линией, на деле там 5 перпендикулярных линий и круг в форме зайчика.
На практике лучше не выпендриваться и иногда даже костылить. Пример насвкидку по изменению "инт" проперти:
{
текстовый контрол}--- на событие "изменилось значение" тупо хардкодим проверку, что строка вообще какой-то вменяемый int. Если нет — подсвечиваем рамку красным.
В закрытии формы
смело берём отвалидаченное выражение и конвертим в инт — ошибок уже не будет. А теперь присваиваем инт низлежащей проперти (да-да, руками!). Если у проперти есть доп. валидация (например, на значения минут), ловим исключение и красиво показываем юзеру — пусть редактирует заново.
В данной схеме вообще нет никаких MVVM! Ибо оверхэд и тухлые теории. Есть визуальная форма + модель,
совмещённая с вьюмоделью. Таким образом, вместо трёх сущностей у нас всего две и обе вменяемо управляемы.