public void SaveModeChanges(ModeVM newModeVM)
        {
            if (!newModeVM.SaveChanges())
            {
                // If mode is null then the user was adding a new mode and cancelled the add. Remove the mode from the list.
                // Otherwise, do nothing
                if (newModeVM.Mode == null)
                {
                    Modes.Remove(Modes.First(modeVM => modeVM.Mode == null));
                }
            }
            else
            {
                // The mode being saved doesn't exist in our list yet. Add it now.
                if (Modes.FirstOrDefault(modeVM => modeVM.Mode.Id == newModeVM.Mode.Id) == null)
                {
                    Modes.Add(newModeVM);
                }

                // Always update the modes so we get the changes
                UpdateModes();
            }

            ShowAddModeButton = true;
            RaisePropertyChanged(nameof(ShowAddModeButton));
        }
        public void DeleteMode(ModeVM modeVMToDelete)
        {
            ModeVM modeToDelete = Modes.FirstOrDefault(modeVM => modeVM.Mode.Id == modeVMToDelete.Mode.Id);

            if (modeToDelete != null)
            {
                Modes.Remove(Modes.First(modeVM => modeVM.Mode.Id == modeVMToDelete.Mode.Id));
                UpdateModes();
            }
        }
        public void CancelModeChanges(ModeVM modeVM)
        {
            modeVM.CancelChanges();

            // If mode is null then the user was adding a new mode and cancelled the add. Remove the mode from the list.
            if (modeVM.Mode == null)
            {
                Modes.Remove(Modes.First(mvm => mvm.Mode == null));
            }

            ShowAddModeButton = true;
            RaisePropertyChanged(nameof(ShowAddModeButton));
        }