Partial code for lab assignment 5 1. Implement the class DelegateCommand and place it in the Command folder. //Class to implement DelegateCommand namespace Assignment_WPF.Commands { /// /// Commanding logic derives from ICommand Interface implements additional functionalities like CommandManager.RequerySuggested for re iterating UI components /// public class DelegateCommand : ICommand { private Action _executeMethod; private Predicate _canExecute; public DelegateCommand(Action _executeMethod) : this(_executeMethod, null) { } public DelegateCommand(Action executeMethod, Predicate canExecute) { _executeMethod = executeMethod; _canExecute = canExecute; } public bool CanExecute(object parameter) { if (_canExecute == null) { return true; } return _canExecute(parameter); } public void Execute(object parameter) { _executeMethod.Invoke(parameter); } public event EventHandler CanExecuteChanged { add { CommandManager.RequerySuggested += value; } remove { CommandManager.RequerySuggested -= value; } } protected virtual void OnCanExecuteChanged() { // add this line CommandManager.InvalidateRequerySuggested(); } } } _______________________ 2. Class Employee public abstract class Employee : IPayable, IComparable,INotifyPropertyChanged { #region member variables private decimal paymentAmount = 0; public decimal PaymentAmount { get { return paymentAmount; } set { paymentAmount = value; RaisePropertyChanged("PaymentAmount"); } public event PropertyChangedEventHandler PropertyChanged; public void RaisePropertyChanged(string propertyName) //don't set to private. { if (PropertyChanged != null) PropertyChanged(this, new PropertyChangedEventArgs(propertyName)); } __________________ 3. Class MainWindow view