Я думаю, что нет правильного пути или неправильного пути. Все зависит от вашего приложения и от того, используете ли вы разные шаблоны или архитектуры или имеете конкретные потребности в своем приложении WPF.
Если вы используете различную многоуровневую архитектуру, вы можете поместить свою проверку в бизнес-уровень приложения. Если это так, используйте This link.
В моих приложениях я хотел бы поставить валидацию в viewmodel. Очевидно, что в некоторых случаях это, например, плохая идея; Если у вас есть свойство FirstName в вашей модели просмотра, это означает, что вы ограничиваете только GUI для проверки свойства FirstName, но что, если кто-то установит его из другого места.
Все сводится к потребностям вашего приложения и требований. Лично говоря, я помещал их в свою ViewModel, как быструю и легкую. Но для лучшей практики я рекомендую вам прочитать ссылку.
Я также рекомендую вам прочитать следующие ссылки, чтобы дать вам лучшее понимание;
How to Use Model Validation Rules in WPF ViewModel
ИЛИ
Business Layer Validation Sample
Надеется, что это помогает!