Skip to content

Commit 636b6bc

Browse files
committed
Turn on Share UI
1 parent 4fcbd9c commit 636b6bc

File tree

1 file changed

+21
-8
lines changed

1 file changed

+21
-8
lines changed

Files UWP/Interacts/Interaction.cs

Lines changed: 21 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@
1717
using Microsoft.Toolkit.Uwp.UI.Controls;
1818
using System.Threading.Tasks;
1919
using Windows.ApplicationModel;
20+
using System.Collections;
21+
using Windows.Foundation;
2022

2123
namespace Files.Interacts
2224
{
@@ -464,21 +466,32 @@ public static async void OpenItem_Click(object sender, RoutedEventArgs e)
464466
public static void ShareItem_Click(object sender, RoutedEventArgs e)
465467
{
466468
DataTransferManager manager = DataTransferManager.GetForCurrentView();
467-
manager.DataRequested += Manager_DataRequested;
469+
manager.DataRequested += new TypedEventHandler<DataTransferManager, DataRequestedEventArgs>(Manager_DataRequested);
468470
DataTransferManager.ShowShareUI();
469471
}
470472

471-
private static void Manager_DataRequested(DataTransferManager sender, DataRequestedEventArgs args)
473+
private async static void Manager_DataRequested(DataTransferManager sender, DataRequestedEventArgs args)
472474
{
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)
474478
{
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+
}
476489
}
477490
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();
482495
}
483496

484497
public static async void DeleteItem_Click(object sender, RoutedEventArgs e)

0 commit comments

Comments
 (0)