I\'m actually learning MVVM pattern.
I can\'t understand one thing about commands. Why use them? Why don\'t just use a function (in the View
) which call a
Another benefit from using ICommand
is its bool CanExecute()
method. You can monitor and control the state and define conditions when your ICommand
can and will be invoked. Plus, for example, Button
with bound ICommand
disables itself automatically, if CanExecute()
returns false (do not forget to call CanExecuteChanged()
method of ICommand every time the propert(y/ies), which affect(s) CanExecute()
, change(s) its/their value).
By the way, the semantic of usage of this pattern is described in other answers.