private void bRemoveModule_Click(object sender, RoutedEventArgs e) { // find parent node ExpansionSetupTreeInfo module_tree_info = tvSetupTree.SelectedItem as ExpansionSetupTreeInfo; // sanity check if (module_tree_info == null) { return; } // find module parent if (module_tree_info.Parent != null) { module_tree_info = (ExpansionSetupTreeInfo)module_tree_info.Parent; } // do not remove main settings if (module_tree_info.ModuleIndex == 0) { return; } // remove module LoadedExpansionInfo expansion = m_current_expansion_manager.Expansions[module_tree_info.ModuleIndex]; m_current_expansion_manager.SetupRemoveModule(module_tree_info.ModuleIndex); SettingsFile.Editing.ModuleDeactivate(expansion.SectionName, expansion.ModuleIndex); }