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); } }