public static IDisposable BindValidationEx <TView, TViewModel, TViewModelProperty, TViewProperty>(
     this TView view,
     TViewModel viewModel,
     Expression <Func <TViewModel, TViewModelProperty> > viewModelProperty,
     Expression <Func <TView, TViewProperty> > viewProperty)
     where TView : IViewFor <TViewModel>
     where TViewModel : ReactiveObject, IValidatableViewModel
 {
     return(ValidationBindingEx.ForProperty(view, viewModelProperty, viewProperty));
 }
 public static IDisposable BindValidationEx<TView, TViewModel, TViewModelProperty>(
     this TView view,
     TViewModel viewModel,
     Expression<Func<TViewModel, TViewModelProperty>> viewModelProperty,
     TextInputLayout viewProperty)
     where TView : IViewFor<TViewModel>
     where TViewModel : ReactiveObject, IValidatableViewModel
 {
     return ValidationBindingEx.ForProperty(
         view,
         viewModelProperty,
         (_, errors) => viewProperty.Error = errors.FirstOrDefault(msg => !string.IsNullOrEmpty(msg)),
         SingleLineFormatter.Default);
 }