Я видел вопрос ReactiveUI: использование CanExecute с ReactiveCommand , однако моя проблема в том, что у меня есть строковое свойство UniqueID, и я хочу, чтобы оно выполнялось только тогда, когда его длина равна 7 Кажется, я не могу найти наблюдателя, который не дает сбой программе. Какой правильный простой способ сделать это?
public class MainViewModel : ReactiveValidatedObject
{
public MainViewModel()
{
RetrieveRecord = new ReactiveAsyncCommand(/* what goes here for CanExecute */);
RetrieveRecord.Subscriber(x => Record = new Record(UniqueId));
// or do we use the method RetrieveRecord.CanExecute()?
// the next line crashes the app
RetrieveRecord.CanExecute(UniqueId.Length == 7);
}
public ReactiveAsyncCommand RetrieveRecord { get; private set; }
string _uniqueId;
public string UniqueId
{
get { return _uniqueId; }
set
{
_clientId = value;
this.RaisePropertyChanged(x => x.UniqueId);
}
}
}