Can anyone tell me which is a better approach for Validation in WPF. 

1. Implementing IDataErrorInfo
2. Creating ValidationRule
3. Throwing Exceptions

in terms of performance, memory leaks, code maintainability and re-use.