Я использовал ReactiveUI 5, но теперь мне нужно выполнить проверку в моей модели ViewModel, поэтому я использовал ReactiveValidatedObject, как описано в документах. Конфигурация была сделана так же, как в примере версии 4, но, похоже, она не работает. Запуск кода примера работает хорошо, но с версией 5 он не работает, мой метод проверки, определенный в атрибуте ValidatesViaMethod, не запускается.Validation on ReactiveUi 5
Я дважды проверял каждую вещь и ее равный образцу кода, с простой проверкой текстового поля и ничего.
Я не знаю ничего другого, что можно было бы сделать. Есть ли другой способ сделать валидацию с ReactiveUI? Я не могу найти документацию или примеры того, как это сделать для версии 4.
кроме Это мой ViewMode, я использую ReactiveValidatedObject от версии 4 и маршрутизации от версии 5.
public class InputViewModel : ReactiveValidatedObject , IRoutableViewModel
{
bool val;
bool invalid = false;
public InputViewModel(IScreen hostscreen)
{
ValidationObservable.Subscribe(x => IsValid = this.IsObjectValid());
var whenAnyValuesChange = this.WhenAny(x => x.IsValid, x => x.Value);
HostScreen = hostscreen ?? RxApp.DependencyResolver.GetService<IScreen>();
}
[ValidatesViaMethod(AllowBlanks = false, AllowNull = false, Name = "IsNameValid", ErrorMessage = "Favor informe o nome corretamente")]
public string Name
{
get { return _name; }
set
{
this.RaiseAndSetIfChanged(ref _name, value);
}
}
public bool IsNameValid(string name)
{
return name.Length >= 2;
}
public IScreen HostScreen
{
get;
private set;
}
public string UrlPathSegment
{
get { return "InputView"; }
}
public Simulation Simulation { get; set; }
private bool _IsValid;
public bool IsValid
{
get { return _IsValid; }
set { this.RaiseAndSetIfChanged(ref _IsValid, value); }
}
}
Пожалуйста, разместите фрагмент кода, чтобы помочь пользователям решить вопрос. –