private static MenuFlyout SetMenu(Func <MenuFlyoutHelper, MenuFlyout> GetMenu, object sender, IMenuFlyoutHelperBuildListener buildListener = null) { MenuFlyout flyout; MenuFlyoutHelper helper; object data; if (sender is MenuFlyout) { flyout = sender as MenuFlyout; data = flyout.Target.DataContext; flyout.Items.Clear(); } else { flyout = new MenuFlyout(); data = (sender as FrameworkElement).DataContext; } helper = new MenuFlyoutHelper() { Data = FindMusic(data), DefaultPlaylistName = Settings.settings.FindNextPlaylistName(FindPlaylistName(data)) }; buildListener?.OnBuild(helper); var items = GetMenu(helper).Items; flyout.Items.Clear(); foreach (var item in items) { flyout.Items.Add(item); } return(flyout); }
public static MenuFlyout SetMusicMenu(object sender, IMenuFlyoutItemClickListener clickListener = null, IMenuFlyoutHelperBuildListener buildListener = null, MenuFlyoutOption option = null) { return(SetMenu(helper => helper.GetMusicMenuFlyout(clickListener, option), sender, buildListener)); }