using ApplicationServices; using Avalonia; using Avalonia.Collections; using Avalonia.Controls; using Avalonia.Data; using Avalonia.Markup.Xaml; using DataLayer; using LibationWinForms.AvaloniaUI.Controls; using LibationWinForms.AvaloniaUI.ViewModels; using ReactiveUI; using System; using System.Collections.ObjectModel; using System.Linq; using Avalonia.Threading; using LibationWinForms.AvaloniaUI.Views.ProductsGrid; namespace LibationWinForms.AvaloniaUI.Views { public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); #if DEBUG this.AttachDevTools(); #endif this.FindAllControls(); // eg: if one of these init'd productsGrid, then another can't reliably subscribe to it Configure_BackupCounts(); Configure_ScanAuto(); Configure_ScanNotification(); Configure_VisibleBooks(); Configure_QuickFilters(); Configure_ScanManual(); Configure_RemoveBooks(); Configure_Liberate(); Configure_Export(); Configure_Settings(); Configure_ProcessQueue(); Configure_Filter(); // misc which belongs in winforms app but doesn't have a UI element Configure_NonUI(); { this.Load += (_, _) => productsDisplay.Display(); LibraryCommands.LibrarySizeChanged += (_, __) => Dispatcher.UIThread.Post(() => productsDisplay.Display()); } } public event EventHandler Load; public void OnLoad() => Load?.Invoke(this, EventArgs.Empty); private void FindAllControls() { { autoScanLibraryToolStripMenuItem = this.FindControl(nameof(autoScanLibraryToolStripMenuItem)); autoScanLibraryToolStripMenuItemCheckbox = this.FindControl(nameof(autoScanLibraryToolStripMenuItemCheckbox)); noAccountsYetAddAccountToolStripMenuItem = this.FindControl(nameof(noAccountsYetAddAccountToolStripMenuItem)); scanLibraryToolStripMenuItem = this.FindControl(nameof(scanLibraryToolStripMenuItem)); scanLibraryOfAllAccountsToolStripMenuItem = this.FindControl(nameof(scanLibraryOfAllAccountsToolStripMenuItem)); scanLibraryOfSomeAccountsToolStripMenuItem = this.FindControl(nameof(scanLibraryOfSomeAccountsToolStripMenuItem)); removeLibraryBooksToolStripMenuItem = this.FindControl(nameof(removeLibraryBooksToolStripMenuItem)); { removeAllAccountsToolStripMenuItem = this.FindControl(nameof(removeAllAccountsToolStripMenuItem)); removeSomeAccountsToolStripMenuItem = this.FindControl(nameof(removeSomeAccountsToolStripMenuItem)); } } { beginBookBackupsToolStripMenuItem = this.FindControl(nameof(beginBookBackupsToolStripMenuItem)); beginPdfBackupsToolStripMenuItem = this.FindControl(nameof(beginPdfBackupsToolStripMenuItem)); liberateVisibleToolStripMenuItem_LiberateMenu = this.FindControl(nameof(liberateVisibleToolStripMenuItem_LiberateMenu)); } { exportLibraryToolStripMenuItem = this.FindControl(nameof(exportLibraryToolStripMenuItem)); } quickFiltersToolStripMenuItem = this.FindControl(nameof(quickFiltersToolStripMenuItem)); { firstFilterIsDefaultToolStripMenuItem = this.FindControl(nameof(firstFilterIsDefaultToolStripMenuItem)); firstFilterIsDefaultToolStripMenuItem_Checkbox = this.FindControl(nameof(firstFilterIsDefaultToolStripMenuItem_Checkbox)); editQuickFiltersToolStripMenuItem = this.FindControl(nameof(editQuickFiltersToolStripMenuItem)); } visibleBooksToolStripMenuItem = this.FindControl(nameof(visibleBooksToolStripMenuItem)); { liberateVisibleToolStripMenuItem_VisibleBooksMenu = this.FindControl(nameof(liberateVisibleToolStripMenuItem_VisibleBooksMenu)); setDownloadedToolStripMenuItem = this.FindControl(nameof(setDownloadedToolStripMenuItem)); removeToolStripMenuItem = this.FindControl(nameof(removeToolStripMenuItem)); } scanningToolStripMenuItem = this.FindControl(nameof(scanningToolStripMenuItem)); scanningToolStripMenuItem_Text = this.FindControl(nameof(scanningToolStripMenuItem_Text)); filterHelpBtn = this.FindControl