internal static void PopulateMenuAndAttachEvents( Action <DownloadLaterEventArgs>?DownloadLaterClicked, Menu nctx, MenuItem dontAddToQueueMenuItem, MenuItem queueAndSchedulerMenuItem, Window window) { foreach (var queue in QueueManager.Queues) { var menuItem = new MenuItem { Name = queue.ID, Label = queue.Name }; menuItem.Activated += (s, e) => { var args = new DownloadLaterEventArgs((string)menuItem.Name); DownloadLaterClicked?.Invoke(args); }; nctx.Append(menuItem); } nctx.Append(dontAddToQueueMenuItem); nctx.Append(queueAndSchedulerMenuItem); nctx.ShowAll(); }
internal static void PopulateMenuAndAttachEvents( EventHandler <DownloadLaterEventArgs>?DownloadLaterClicked, Button button, FrameworkElement window) { var nctx = (ContextMenu)window.FindResource("DownloadLaterContextMenu"); nctx.Items.Clear(); foreach (var queue in QueueManager.Queues) { var menuItem = new MenuItem { Tag = queue.ID, Header = queue.Name }; menuItem.Click += (s, e) => { MenuItem m = (MenuItem)e.OriginalSource; var args = new DownloadLaterEventArgs((string)m.Tag); DownloadLaterClicked?.Invoke(window, args); }; nctx.Items.Add(menuItem); } nctx.Items.Add(window.FindResource("DontAddToQueueMenuItem")); nctx.Items.Add(window.FindResource("QueueAndSchedulerMenuItem")); nctx.PlacementTarget = button; nctx.Placement = PlacementMode.Bottom; nctx.IsOpen = true; }