Exemplo n.º 1
0
        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;
        }
Exemplo n.º 2
0
        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;
                }
            }