Может любой говорить мне, который является лучшим подходом для Проверки в WPF.
с точки зрения производительности, утечек памяти, надежности кода и повторного использования.
Это довольно сложный запрос, и, честно говоря, он, вероятно, будет варьироваться в зависимости от предпочтений больше, чем что-либо еще.Но вот мое понимание:
ValidationRules старше, чем IDataErrorInfo (я считаю, что последнее было введено в .Net 3.5). Исходя только из этого, может показаться, что команда WPF предпочитает IDataErrorInfo. Но правда в том, что они созданы для разных целей. Если у вас есть MVVM или эквивалентный шаблон, IDataErrorInfo лучше подходит для ошибок в модели (например, отрицательный возраст), тогда как ValidationRules лучше для ошибок в представлении (скажем, возраст ☃). Конечно, возможно, чтобы ValidationRules выполняли проверки «бизнес-логики» или чтобы IDataErrorInfo сообщал вам, что «снеговик в Юникоде не является допустимым возрастом», но вы (вероятно) получите лучшую ремонтопригодность, придерживаясь этого шаблона.
Но не используйте исключения для проверки за пределами первоначального тестирования, чтобы увидеть, какие именно условия вы должны тестировать.