private void NavigationViewLocationItem_Drop(object sender, DragEventArgs e) { if (!((sender as Microsoft.UI.Xaml.Controls.NavigationViewItem).DataContext is LocationItem locationItem)) { return; } // If the dropped item is a folder or file from a file system if (e.DataView.Contains(StandardDataFormats.StorageItems)) { VisualStateManager.GoToState(sender as Microsoft.UI.Xaml.Controls.NavigationViewItem, "Drop", false); var deferral = e.GetDeferral(); SidebarItemDropped?.Invoke(this, new SidebarItemDroppedEventArgs() { Package = e.DataView, ItemPath = locationItem.Path, AcceptedOperation = e.AcceptedOperation }); deferral.Complete(); } else if ((e.DataView.Properties["sourceLocationItem"] as Microsoft.UI.Xaml.Controls.NavigationViewItem).DataContext is LocationItem sourceLocationItem) { // Else if the dropped item is a location item // Swap the two items SidebarPinnedModel.SwapItems(sourceLocationItem, locationItem); } }
private void NavigationViewDriveItem_Drop(object sender, DragEventArgs e) { if (!((sender as Microsoft.UI.Xaml.Controls.NavigationViewItem).DataContext is DriveItem driveItem)) { return; } VisualStateManager.GoToState(sender as Microsoft.UI.Xaml.Controls.NavigationViewItem, "Drop", false); var deferral = e.GetDeferral(); SidebarItemDropped?.Invoke(this, new SidebarItemDroppedEventArgs() { Package = e.DataView, ItemPath = driveItem.Path, AcceptedOperation = e.AcceptedOperation }); deferral.Complete(); }