/// <summary> /// Save any pending changes to user preferences /// </summary> /// <param name="forceSave">save to disk regardless of changed data</param> public void SaveChanges(bool forceSave = false) { if (m_changed || forceSave) { // make sure the saving directory exists string dirPath = Path.GetDirectoryName(SettingsFileLocation); if (!Directory.Exists(dirPath)) { Directory.CreateDirectory(dirPath); } string jsonData = JsonConvert.SerializeObject(this, Formatting.Indented); using (Stream stream = new FileStream(SettingsFileLocation, FileMode.Create)) using (TextWriter writer = new StreamWriter(stream)) { writer.Write(jsonData); } } // everything saved, reset the UI m_changed = false; SavePreferencesCmd.RaiseCanExecuteChanged(); }
private void PreferenceChanged(object sender, PropertyChangedEventArgs e) { m_changed = true; SavePreferencesCmd.RaiseCanExecuteChanged(); }