Approccio consigliato per inizializzare il comando

1

Ho due comandi nel mio modello di visualizzazione e uno di essi viene inizializzato utilizzando il caricamento lento e altri utilizzando il caricamento ansioso.

Quale approccio è buono da fare? Dovrei usare il caricamento pigro o desideroso di entrambi?

Visualizza modello:

public class LoginPageViewModel : MvxViewModel
{
    public LoginPageViewModel()
    {
        InitializeCommands();
    }

    public MvxCommand<object> LoginCommand { get; set; }

    private MvxCommand<object> signUpCommand;
    public MvxCommand<object> SignUpCommand
    {
        get
        {
            return signUpCommand ?? (signUpCommand = new MvxCommand<object>(o => {
                ShowViewModel<SignupPageViewModel> ();
            }));
        }
    }

    private void InitializeCommands()
    {
        LoginCommand = new MvxCommand<object>(LoginUser);
    }
}

Visualizza:

public override void ViewDidLoad ()
{
    base.ViewDidLoad ();

    var set = this.CreateBindingSet<LoginPageView, LoginPageViewModel> ();
    set.Bind (CreateAccountButton).To (vm => vm.SignUpCommand);
    set.Bind (ResetPasswordButton).To (vm => vm.ResetPasswordCommand);

    set.Apply ();
}

Lo sto usando nell'app per iOS sviluppata con Xamrian.iOS e MVVMCross

    
posta Adnan Umer 19.04.2016 - 14:39
fonte

1 risposta

2

A meno che tu non abbia una buona ragione, sceglierei l'approccio più semplice, cioè il caricamento avido.

E, supponendo che tu possa usare C # 6.0, proverei a semplificare ulteriormente il codice:

public MvxCommand<object> LoginCommand { get; } = new MvxCommand<object>(LoginUser);
public MvxCommand<object> SignUpCommand { get; }
    = new MvxCommand<object>(o => ShowViewModel<SignupPageViewModel> ());
    
risposta data 20.04.2016 - 17:53
fonte

Leggi altre domande sui tag