|
17 | 17 | using Microsoft.Toolkit.Uwp.UI.Controls;
|
18 | 18 | using System.Threading.Tasks;
|
19 | 19 | using Windows.ApplicationModel;
|
| 20 | +using System.Collections; |
| 21 | +using Windows.Foundation; |
20 | 22 |
|
21 | 23 | namespace Files.Interacts
|
22 | 24 | {
|
@@ -464,21 +466,32 @@ public static async void OpenItem_Click(object sender, RoutedEventArgs e)
|
464 | 466 | public static void ShareItem_Click(object sender, RoutedEventArgs e)
|
465 | 467 | {
|
466 | 468 | DataTransferManager manager = DataTransferManager.GetForCurrentView();
|
467 |
| - manager.DataRequested += Manager_DataRequested; |
| 469 | + manager.DataRequested += new TypedEventHandler<DataTransferManager, DataRequestedEventArgs>(Manager_DataRequested); |
468 | 470 | DataTransferManager.ShowShareUI();
|
469 | 471 | }
|
470 | 472 |
|
471 |
| - private static void Manager_DataRequested(DataTransferManager sender, DataRequestedEventArgs args) |
| 473 | + private async static void Manager_DataRequested(DataTransferManager sender, DataRequestedEventArgs args) |
472 | 474 | {
|
473 |
| - foreach (IStorageItem item in dataGrid.ItemsSource) |
| 475 | + DataRequestDeferral dataRequestDeferral = args.Request.GetDeferral(); |
| 476 | + List<IStorageItem> items = new List<IStorageItem>(); |
| 477 | + foreach (ListedItem li in dataGrid.SelectedItems) |
474 | 478 | {
|
475 |
| - |
| 479 | + if (li.FileExtension == "Folder") |
| 480 | + { |
| 481 | + var folderAsItem = await StorageFolder.GetFolderFromPathAsync(li.FilePath); |
| 482 | + items.Add(folderAsItem); |
| 483 | + } |
| 484 | + else |
| 485 | + { |
| 486 | + var fileAsItem = await StorageFile.GetFileFromPathAsync(li.FilePath); |
| 487 | + items.Add(fileAsItem); |
| 488 | + } |
476 | 489 | }
|
477 | 490 | DataRequest dataRequest = args.Request;
|
478 |
| - dataRequest.Data.SetStorageItems(dataGrid.ItemsSource as IEnumerable<IStorageItem>); |
479 |
| - dataRequest.Data.Properties.Title = "Data Shared From Files UWP"; |
480 |
| - dataRequest.Data.Properties.Description = "The files/folders you selected will be shared"; |
481 |
| - |
| 491 | + dataRequest.Data.SetStorageItems(items); |
| 492 | + dataRequest.Data.Properties.Title = "Data Shared From Files"; |
| 493 | + dataRequest.Data.Properties.Description = "The items you selected will be shared"; |
| 494 | + dataRequestDeferral.Complete(); |
482 | 495 | }
|
483 | 496 |
|
484 | 497 | public static async void DeleteItem_Click(object sender, RoutedEventArgs e)
|
|
0 commit comments