Создание DelegateCommand, в конструкторе или в свойстве - PullRequest
0 голосов
/ 07 января 2012

Я видел несколько примеров создания DelegateCommands в конструкторе или в самом свойстве.Мне интересно, есть ли какое-либо преимущество в конструктор, поскольку я делал это в свойстве, чтобы отслеживать это проще.

(с использованием Prism, Silverlight4 и SimpleMVVM Toolkit в моем случае)

    private DelegateCommand _cmdLogin;
    public DelegateCommand CmdLogin
    {
        get
        {
            if (_cmdLogin == null)
            {
                _cmdLogin = new DelegateCommand(this.Login, this.CanLogIn);
            }
            return _cmdLogin;
        }
    }

VS

    public LoginViewModel()
    {
        this.LoginCommand = new DelegateCommand(this.Login, this.CanLogin);
    }
    public DelegateCommand LoginCommand { get; set; }

1 Ответ

1 голос
/ 09 января 2012

У меня была такая же мысль, как и у вас, Suiko6272, об этом.

Я закончил с твоим вторым решением в конце. Тем не менее, я использовал этот механизм в моей собственности довольно долго

private DelegateCommand _cmdLogin;
public DelegateCommand CmdLogin
{
    get { return _cmdLogin??(_cmdLogin = new DelegateCommand(this.Login, this.CanLogIn));}
}

Приведенный выше код lazy загружает команду делегата и занимает всего 1 строку кода.

Я закончил с вашим вторым решением, потому что другие кодеры читают его проще / легче всего.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...