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

Aucun commentaire:

Enregistrer un commentaire