Affichage des articles dont le libellé est ReactiveCommand with CanExecute on Int32 property. Afficher tous les articles
Affichage des articles dont le libellé est ReactiveCommand with CanExecute on Int32 property. Afficher tous les articles

mercredi 8 février 2017

ReactiveCommand with CanExecute on Int32 property

Vote count: 0

I have the next viewmodel and i use canSubmit observable for SubmitOrder command. Quantity property is binded to TextBox's text property. And when i input some text in TextBox it doesn't trigger canSubmit observable and command is still be enabled. Here is my viewmodel:

public class CreateOrderViewModel : ReactiveObject
{
    private int _quantity;
    public int Quantity
    {
        get { return _quantity; }
        set { this.RaiseAndSetIfChanged(ref _quantity, value); }
    }

    private ISymbol _selectedSymbol;

    public ISymbol SelectedSymbol
    {
        get { return _selectedSymbol; }
        set { this.RaiseAndSetIfChanged(ref _selectedSymbol, value); }
    }

    private BuySell _side;

    public BuySell Side
    {
        get { return _side; }
        set { this.RaiseAndSetIfChanged(ref _side, value); }
    }

    public ReactiveCommand<Unit, IOrderProcessor> SubmitOrder { get; }

    public CreateOrderViewModel(IOrderService orderService)
    {
        var canSubmit = this.WhenAnyValue(v => v.SelectedSymbol, v => v.Quantity,
            (symbol, quantity) => symbol != null && quantity > 0);

        SubmitOrder = ReactiveCommand.Create(
            () =>   orderService.SubmitOrder(CreateOrderFromParameters()),
            canSubmit);
    }

    private Order CreateOrderFromParameters()
    {
        return new Order
        {
            Quantity = Quantity,
            Symbol = SelectedSymbol,
            Side = Side
        };
    }
}

asked 26 secs ago

Let's block ads! (Why?)



ReactiveCommand with CanExecute on Int32 property