private void ItemsList_ContextRequested(UIElement sender, ContextRequestedEventArgs args) { var list = sender as ListViewBase; var itemFlyout = ItemContextFlyoutTemplate?.LoadContent() as FlyoutBase; if (itemFlyout == null) { return; } if (itemFlyout is VideoItemFlyout videoItemFlyout) { if (list.SelectedItems.Count > 0) { videoItemFlyout.Playlist = PlaylistPassToFlyout; videoItemFlyout.VideoItems = list.SelectedItems.Cast <IVideoContent>().ToList(); } else { videoItemFlyout.Playlist = PlaylistPassToFlyout; videoItemFlyout.VideoItems = null; } } if (sender == args.OriginalSource) { return; } // コントローラ操作時にSelectorItem.DataContext == null になる // MenuFlyoutItemのCommand等が解決できるようにDataContextを予め埋める if (args.OriginalSource is SelectorItem selectorItem) { selectorItem.DataContext = selectorItem.Content; } itemFlyout.ShowAt(args.OriginalSource as FrameworkElement); args.Handled = true; }
private void ItemsList_ContextRequested(UIElement sender, ContextRequestedEventArgs args) { var list = sender as ListViewBase; var itemFlyout = ItemContextFlyoutTemplate?.LoadContent() as FlyoutBase; if (itemFlyout == null) { return; } if (itemFlyout is VideoItemFlyout videoItemFlyout) { if (list.SelectionMode is ListViewSelectionMode.Multiple or ListViewSelectionMode.Extended && list.SelectedItems.Count > 0) { videoItemFlyout.Playlist = PlaylistPassToFlyout; videoItemFlyout.SelectedVideoItems = list.SelectedItems.Cast <IVideoContent>().ToList(); } else { videoItemFlyout.Playlist = PlaylistPassToFlyout; videoItemFlyout.SelectedVideoItems = null; } }