private void SaveModifiedSettings(bool confirmationRequired)
        {
            // if no dirty properties, nothing to save
            if (_selectedSettingsGroup == null || !_selectedSettingsGroup.Properties.Any(p => p.Dirty))
            {
                return;
            }

            if (confirmationRequired && !ConfirmSave())
            {
                return;
            }

            try
            {
                _selectedSettingsGroup.Save();

                UpdateActionEnablement();

                try
                {
                    //Settings classes cache values and don't automatically reload, so try to reload at least the static default instance.
                    var settingsClass   = ApplicationSettingsHelper.GetSettingsClass(_selectedSettingsGroup.Descriptor);
                    var defaultInstance = ApplicationSettingsHelper.GetDefaultInstance(settingsClass);
                    if (defaultInstance != null)
                    {
                        defaultInstance.Reload();
                    }
                }
                catch (Exception e)
                {
                    //Shouldn't really happen, and definitely not the end of the world.
                    Platform.Log(LogLevel.Debug, e);
                }
            }
            catch (Exception e)
            {
                ExceptionHandler.Report(e, SR.MessageSaveSettingFailed, this.Host.DesktopWindow);
            }
        }