c# - CanExecute in DelegateCommand and expression declaration doesn't work -
my question straightforward. why works:
public delegatecommand logincommand { get; } func<bool> canexecutelogin = () => !stringservice.isnullorempty(_entries.logintext, _entries.passwordtext); logincommand = new delegatecommand(onlogintapped, canexecutelogin); but doesn't:
public delegatecommand logincommand => new delegatecommand(onlogintapped, () => !stringservice.isnullorempty(_entries.logintext, _entries.passwordtext)); i check so:
public string loginentrytext { { return _entries.logintext; } set { _entries.logintext = value; logincommand?.raisecanexecutechanged(); } } doesn't work, mean func never executes after initialization.
question not entirely clear me, suspect reason follows.
this
public delegatecommand logincommand => new delegatecommand(...) is equivalent this
public delegatecommand logincommand { {return new delegatecommand(...)}} so every time access logincommand property - returns new delegatecommand instance. means raisecanexecutechanged on fresh instance of command, , code called property before , can react change use own instances.
that's unlike first scenario there 1 instance of delegatecommand used everyone.
Comments
Post a Comment