using ApplicationServices; using Avalonia; using Avalonia.Controls; using Avalonia.Markup.Xaml; using LibationWinForms.AvaloniaUI.Controls; using System; using Avalonia.Threading; using LibationWinForms.AvaloniaUI.Views.ProductsGrid; using Avalonia.ReactiveUI; using LibationWinForms.AvaloniaUI.ViewModels; using System.Threading.Tasks; namespace LibationWinForms.AvaloniaUI.Views { public partial class MainWindow : ReactiveWindow { 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(); async void DoDisplay(object _, EventArgs __) { await productsDisplay.Display(); } { this.Load += DoDisplay; LibraryCommands.LibrarySizeChanged += DoDisplay; } } private void InitializeComponent() { AvaloniaXamlLoader.Load(this); } 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