We really recommend using INotifyDataErrorInfo for validation. It's async and supports rich error info.
Here's a blog post series I put together for RIA Services validation - much of this applies to Silverlight even if you're not using RIA Services.
http://jeffhandley.com/tags/RiaServicesValidation/default.aspx
Also, you should look at the Validator class in DataAnnotations:
http://jeffhandley.com/archive/2009/10/16/validator.aspx
-Jeff