static void Main(string[] args) => Source.LogError(() => { _ = Logger.ObserveTaskException(); Source.LogInfo(Source.Assembly); Source.LogInfo($"[ {args.Join(" ")} ]"); Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); var src = new SettingFolder(); src.Load(); var im = args.Length > 0 && args[0].FuzzyEquals("/Install"); if (im) { Source.LogInfo("Mode:Install"); } var view = new MainWindow(); var vm = new SettingViewModel(src, SynchronizationContext.Current); vm.Associate.Changed = im; vm.Load(); view.Bind(vm); Application.Run(view); });
/* ----------------------------------------------------------------- */ /// /// BindCore /// /// <summary> /// Invokes the binding settings. /// </summary> /// /// <param name="vm">VM object to bind.</param> /// /* ----------------------------------------------------------------- */ private void BindCore(SettingViewModel vm) { // General var s0 = vm; var b0 = Behaviors.Hook(new BindingSource(s0, "")); b0.Bind(nameof(s0.Filters), FilterTextBox, nameof(TextBox.Text)); b0.Bind(nameof(s0.ToolTip), ToolTipCheckBox, nameof(CheckBox.Checked)); b0.Bind(nameof(s0.ToolTip), ToolTipNumeric, nameof(Enabled)); b0.Bind(nameof(s0.ToolTipCount), ToolTipNumeric, nameof(NumericUpDown.Value)); b0.Bind(nameof(s0.AlphaFS), IoHandlerComboBox, nameof(ComboBox.SelectedValue)); b0.Bind(nameof(s0.Temp), TempTextBox, nameof(TextBox.Text)); b0.Bind(nameof(s0.CheckUpdate), UpdateCheckBox, nameof(CheckBox.Checked)); IoHandlerComboBox.Bind(Resource.IoHandlers); // File association var b1 = Behaviors.Hook(new BindingSource(vm.Associate, "")); BindAssociate(b1, 0); // Context menu var s2 = vm.Menu; var b2 = Behaviors.Hook(new BindingSource(s2, "")); b2.Bind(nameof(s2.UsePreset), ContextPresetPanel, nameof(Enabled)); b2.Bind(nameof(s2.Compress), ContextCompressCheckBox, nameof(CheckBox.Checked)); b2.Bind(nameof(s2.Compress), ContextCompressPanel, nameof(Enabled)); b2.Bind(nameof(s2.Extract), ContextExtractCheckBox, nameof(CheckBox.Checked)); b2.Bind(nameof(s2.Extract), ContextExtractPanel, nameof(Enabled)); BindContext(b2, 0); // Desktop shortcut var s3 = vm.Shortcut; var b3 = Behaviors.Hook(new BindingSource(s3, "")); b3.Bind(nameof(s3.Compress), ShortcutCompressCheckBox, nameof(CheckBox.Checked)); b3.Bind(nameof(s3.Compress), ShortcutCompressComboBox, nameof(Enabled)); b3.Bind(nameof(s3.CompressOptions), ShortcutCompressComboBox, nameof(ComboBox.SelectedValue)); b3.Bind(nameof(s3.Extract), ShortcutExtractCheckBox, nameof(CheckBox.Checked)); b3.Bind(nameof(s3.Settings), ShortcutSettingsCheckBox, nameof(CheckBox.Checked)); ShortcutCompressComboBox.Bind(Resource.Shortcuts); // Compression var s4 = vm.Compress; var b4 = Behaviors.Hook(new BindingSource(s4, "")); b4.Bind(nameof(s4.SaveSource), CompressSaveSourceRadioButton, nameof(RadioButton.Checked)); b4.Bind(nameof(s4.SaveQuery), CompressSaveQueryRadioButton, nameof(RadioButton.Checked)); b4.Bind(nameof(s4.SaveOthers), CompressSaveRadioButton, nameof(RadioButton.Checked)); b4.Bind(nameof(s4.SaveOthers), CompressSaveButton, nameof(Enabled)); b4.Bind(nameof(s4.SaveOthers), CompressSaveTextBox, nameof(Enabled)); b4.Bind(nameof(s4.SaveDirectory), CompressSaveTextBox, nameof(TextBox.Text)); b4.Bind(nameof(s4.Filtering), CompressFilterCheckBox, nameof(CheckBox.Checked)); b4.Bind(nameof(s4.UseUtf8), CompressUtf8CheckBox, nameof(CheckBox.Checked)); b4.Bind(nameof(s4.OverwritePrompt), CompressOverwriteCheckBox, nameof(CheckBox.Checked)); b4.Bind(nameof(s4.OpenDirectory), CompressOpenCheckBox, nameof(CheckBox.Checked)); b4.Bind(nameof(s4.OpenDirectory), CompressOpenSmartCheckBox, nameof(Enabled)); b4.Bind(nameof(s4.SkipDesktop), CompressOpenSmartCheckBox, nameof(CheckBox.Checked)); // Extracting var s5 = vm.Extract; var b5 = Behaviors.Hook(new BindingSource(s5, "")); b5.Bind(nameof(s5.SaveSource), ExtractSaveSourceRadioButton, nameof(RadioButton.Checked)); b5.Bind(nameof(s5.SaveQuery), ExtractSaveQueryRadioButton, nameof(RadioButton.Checked)); b5.Bind(nameof(s5.SaveOthers), ExtractSaveRadioButton, nameof(RadioButton.Checked)); b5.Bind(nameof(s5.SaveOthers), ExtractSaveButton, nameof(Enabled)); b5.Bind(nameof(s5.SaveOthers), ExtractSaveTextBox, nameof(Enabled)); b5.Bind(nameof(s5.SaveDirectory), ExtractSaveTextBox, nameof(TextBox.Text)); b5.Bind(nameof(s5.Filtering), ExtractFilterCheckBox, nameof(CheckBox.Checked)); b5.Bind(nameof(s5.DeleteSource), ExtractDeleteCheckBox, nameof(CheckBox.Checked)); b5.Bind(nameof(s5.Bursty), ExtractBurstCheckBox, nameof(CheckBox.Checked)); b5.Bind(nameof(s5.CreateDirectory), ExtractCreateCheckBox, nameof(CheckBox.Checked)); b5.Bind(nameof(s5.CreateDirectory), ExtractCreateSmartCheckBox, nameof(Enabled)); b5.Bind(nameof(s5.SkipSingleDirectory), ExtractCreateSmartCheckBox, nameof(CheckBox.Checked)); b5.Bind(nameof(s5.OpenDirectory), ExtractOpenCheckBox, nameof(CheckBox.Checked)); b5.Bind(nameof(s5.OpenDirectory), ExtractOpenSmartCheckBox, nameof(Enabled)); b5.Bind(nameof(s5.SkipDesktop), ExtractOpenSmartCheckBox, nameof(CheckBox.Checked)); }