I am stuck in a seemingly common requirement. I have a WPF Prism (for MVVM) application. My model implements the IDataErrorInfo for validation. The
Since .NET 4.5, ValidationRule has an overload of the Validate method:
public ValidationResult Validate(object value, CultureInfo cultureInfo,
BindingExpressionBase owner)
You can override it and get the view model this way:
public override ValidationResult Validate(object value,
CultureInfo cultureInfo, BindingExpressionBase owner)
{
ValidationResult result = base.Validate(value, cultureInfo, owner);
var vm = (YourViewModel)((BindingExpression)owner).DataItem;
// ...
return result;
}