WPF doesn't support DataAnnotations and IValidatableObject out of the box.
This project fills this gap via adapters to the IDataErrorInfo interface which is supported by the WPF validation infrastructure.
Your code becomes more DRY since DataAnnotations are supported by major MS technologies such as Entity Framework and ASP.NET MVC.
At the top it defines a small internal DSL for defining validation rules that span multiple members (such as DateRange) that make those rules a no brainer...