using System.Collections.Generic; using System.Windows; using System.Windows.Controls; using InstaSoftOfficeTool.Models; namespace InstaSoftOfficeTool.Pages { public partial class ConfigPage : Page, IWizardPage { private readonly MainWindow _main; private readonly InstallConfig _config; private readonly List _appCheckBoxes = new List(); public ConfigPage(MainWindow main, InstallConfig config) { InitializeComponent(); _main = main; _config = config; // Restore arch if (_config.Architecture == "32") { Rb32.IsChecked = true; } // Populate language combo foreach (var lang in LanguageList.Languages) { CbLanguage.Items.Add(new ComboBoxItem { Content = lang.Name + " (" + lang.Code + ")", Tag = lang.Code }); } // Select current language for (int i = 0; i < CbLanguage.Items.Count; i++) { var item = (ComboBoxItem)CbLanguage.Items[i]; if ((string)item.Tag == _config.Language) { CbLanguage.SelectedIndex = i; break; } } if (CbLanguage.SelectedIndex < 0) CbLanguage.SelectedIndex = 0; // Populate app checkboxes foreach (var app in ExcludableApps.Apps) { var cb = new CheckBox { Content = app.DisplayName, IsChecked = !_config.ExcludedApps.Contains(app.Id), Tag = app.Id, Style = (Style)FindResource("FluentCheckBox"), Margin = new Thickness(0, 4, 24, 4), MinWidth = 160 }; _appCheckBoxes.Add(cb); AppCheckBoxes.Children.Add(cb); } } public bool Validate() { _config.Architecture = Rb64.IsChecked == true ? "64" : "32"; if (CbLanguage.SelectedItem is ComboBoxItem selected) { _config.Language = (string)selected.Tag; } _config.ExcludedApps.Clear(); foreach (var cb in _appCheckBoxes) { if (cb.IsChecked != true) { _config.ExcludedApps.Add((string)cb.Tag); } } return true; } } }