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

Popular posts from this blog

python - PyInstaller UAC not working in onefile mode -

python - RuntimeError: can't re-enter readline -

php - Need to store a large amount of data in session with CI 3 but on storing large data in session it is itself destorying automatically -