private void OpenEditorWindow(FileSetting fileSetting) { if (fileSetting == null) { fileSetting = new FileSetting(); } var vm = new FileSettingEditorWindowViewModel(fileSetting, FileSettings); var window = new FileSettingEditorWindow() { DataContext = vm }; window.ShowDialog(); if (!vm.IsDone || fileSetting.Equals(vm.FileSetting)) { return; } var index = FileSettings.IndexOf(fileSetting); if (index >= 0) { RemoveFileSetting(fileSetting); FileSettings.Insert(index, vm.FileSetting); } else { FileSettings.Add(vm.FileSetting); } IsDirty = true; UpdateView(); }