У меня есть следующая ViewModel
class MyViewModel
{
private string _name;
public MyViewModel()
{
CommitChanges = ReactiveCommand.Create(Observable.When(
this.ObservableForProperty(x => x.Name)
.And(Childs.CountChanged)
.Then((one, two) => !string.IsNullOrWhiteSpace(one.Value) && two > 0)));
CommitChanges.Subscribe(_ => DoCommitChanges());
}
public IReactiveList Childs { get ; } = new ReactiveList<object>();
public string Name
{
get { return _name; }
set { this.RaiseAndSetIfChanged(ref _naam, value); }
}
public ReactiveCommand<object> CommitChanges { get; }
private void DoCommitChanges() { ... }
}
CanExecute
команды CommitChanges неправильно отслеживает наблюдаемые. Например, когда я добавляю ребенка и задаю имя, CanExecute
меняется на true
, как и ожидалось, но когда я затем очищаю имя, CanExecute
по-прежнему остается true
. Что я делаю не так?