Лапшекодим валидацию, или запрещаем вводить неправильные данные?
И отчего бы не написать просто так?
NumericUpDown
Value={Binding MyField}
Min=0
Max=10
А что мешает так написать?
[Range(10, 1000, ErrorMessage = "Все оно, а я конфетка!")]
В вашем случае надо не забыть реализовать IDataErrorInfo (или отнаследоваться от базового класса с его реализацией), прикрутить стили с сообщениями об ошибках, и так - на каждую модель. Вобщем, в вашем случае целый список, что нужно сделать. А вы мне говорите, что человек забудет привязать границы и захардкодит их.
Вы просто не open minded и не пробовали сделать, как я говорю. А я пробовал и так, и так. И возьба с атрибутами меня не вдохновляет. Пока не будет нормального простого интерфейса для вытаскивания данных из них, а не портянки с рефлексией и указанием кучи данных из перечислений по типам свойств (ещё поди разберись, какие сочетания правильные).
Вы так и не сказали, как будете атрибуты модели прокидывать во вью модель.