In this article I am going to add commanding to
the earlier post http://www.c-sharpcorner.com/UploadFile/Mahadesh/8807/.
Lets take a copy of the code created in the previous article . We would be doing
some modifications to add the Commanding.
Lets start with the PeopleViewModel.cs
We need to add a new class say UpdatePersonCommand. I would place this class in
the PeopleViewModel.cs.
public class
UpdatePersonCommand :
ICommand
{
public bool
CanExecute(object parameter)
{
if (parameter !=
null)
{
CanExecuteChanged.Invoke(parameter,
new EventArgs());
}
return
true;
}
public
event EventHandler CanExecuteChanged;
public void
Execute(object parameter)
{
// We have some work to do here
}
}
Let me also add my command:
public
ICommand UpdateVM
{
get
{
return
new UpdatePersonCommand();
}
}
Let me now modify the MainPage.xaml.cs.
I will change the
Button_Click handler as shown below:
private void Button_Click(object
sender, RoutedEventArgs e)
{
this.ViewModel.UpdateVM.Execute(this.Resources["ViewModel"]
as PeopleViewModel);
}
What I do is just call the Execute on the Update Command which would modify my
ViewModel.
As can be seen I pass the PageViewModel Instance in the execute method.
Nothing changes in the xaml code.
Just call the UpdatePerson in the Execute of the
UpdatePersonCommand class.
public void
Execute(object parameter)
{
(parameter as
PeopleViewModel).UpdatePerson();
}
Run the project. It works the same way.
Thanks. Happy coding.