Следующая строка вызывает исключение во время выполнения:ReactiveCommand.Create throws «NotSupportedException»: «Индексные выражения поддерживаются только константами».
Accept = ReactiveCommand.Create(this.WhenAnyValue(x => x.Canexecute()));
Вот код:
public class InstructionsViewModel : ReactiveObject
{
public InstructionsViewModel()
{
Accept = ReactiveCommand.Create(this.WhenAnyValue(x => x.CanExecute));
Accept.Subscribe(x =>
{
Debug.Write("Hello World");
});
}
public ReactiveCommand<object> Accept { get; }
bool _canExecute;
public bool CanExecute { get { return _canExecute; } set { this.RaiseAndSetIfChanged(ref _canExecute, value); } }
}
Ошибка:
Cannot convert lambda expression to type 'IObserver' because it is not a delegate type
Я также попытался следующие:
public InstructionsViewModel()
{
Accept = ReactiveCommand.Create(this.WhenAnyValue(x => x.Canexecute()));
Accept.Subscribe(x =>
{
Debug.Write("Hello World");
});
}
public ReactiveCommand<object> Accept { get; }
public bool Canexecute() => true;
Я получаю следующее сообщение об ошибке:
An exception of type 'System.NotSupportedException' occurred in ReactiveUI.dll but was not handled in user code
Additional information: Index expressions are only supported with constants.
ли это даже поддерживается на Windows Phone 10?
Я попробовал ваше предложение. Однако я получаю следующую ошибку: Невозможно преобразовать лямбда-выражение для ввода «IObserver
Поддерживается ли это в UWP (например, Windows Phone 10)? –
Должен признать, что я озадачен, это должно работать и на UWP в соответствии с веб-сайтом. Не могли бы вы отредактировать свой вопрос с новой версией вашего кода и сведения об ошибке? – pmbanka