2015-02-03 2 views
1

Может кто-то помочь им в кодировании моего собственного приложения для хранения универсальных окон. Я хочу, чтобы моя страница xaml выбрала файл, а затем передала его, используя контракт на share на телефоне Windows 8.1. Проблема заключается в моем приложении Windows Phone 8.1, когда я выбираю файл, который он попадает в точку останова, и не распознает эту строку кода. IReadOnlyList selectedFiles = wait filePicker.PickMultipleFilesAsync(). Это работает в версии Windows 8.1, а не в версии Windows Phone 8.1.Совместное использование файла на Windows Phone 8.1

private async void SelectFilesButton_Click(object sender, RoutedEventArgs e) 
    { 
     FileOpenPicker filePicker = new FileOpenPicker 
     { 
      ViewMode = PickerViewMode.List, 
      SuggestedStartLocation = PickerLocationId.DocumentsLibrary, 
      FileTypeFilter = { "*" } 
     }; 

     IReadOnlyList<StorageFile> pickedFiles = await filePicker.PickMultipleFilesAsync(); 

     if (pickedFiles.Count > 0) 
     { 
      this.storageItems = pickedFiles; 

      // Display the file names in the UI. 
      string selectedFiles = String.Empty; 
      for (int index = 0; index < pickedFiles.Count; index++) 
      { 
       selectedFiles += pickedFiles[index].Name; 

       if (index != (pickedFiles.Count - 1)) 
       { 
        selectedFiles += ", "; 
       } 
      } 

      NotifyUser(String.Format("Picked files: ") + selectedFiles + ".", NotifyType.StatusMessage); 

      ShareStep.Visibility = Visibility.Visible; 
     } 
    } 
    private void Button_Click(object sender, RoutedEventArgs e) 
    { 

     DataTransferManager dataTransferManager = DataTransferManager.GetForCurrentView(); 
     dataTransferManager.DataRequested += new TypedEventHandler<DataTransferManager, 
      DataRequestedEventArgs>(this.ShareStorageItemsHandler); 
     // If the user clicks the share button, invoke the share flow programatically. 
     DataTransferManager.ShowShareUI(); 


    } 

    private async void ShareStorageItemsHandler(DataTransferManager sender,DataRequestedEventArgs e) 
    { 
     DataRequest request = e.Request; 
     request.Data.Properties.Title = TitleInputBox.Text; 
     request.Data.Properties.Description = DescriptionInputBox.Text; 

     // Because we are making async calls in the DataRequested event handler, 
     // we need to get the deferral first. 
     DataRequestDeferral deferral = request.GetDeferral(); 

     // Make sure we always call Complete on the deferral. 
     try 
     { 


      request.Data.SetStorageItems(this.storageItems); 
     } 
     finally 
     { 
      deferral.Complete(); 
     } 
    } 

ответ

0

API-интерфейс для выбора файлов на Windows Phone 8.1 работает несколько иначе. Вместо FileOpenPicker.PickMultipleFilesAsync вам нужно вызвать FileOpenPicker.PickMultipleFilesAndContinue. Эта статья предоставляет гораздо больше контекста: https://msdn.microsoft.com/en-us/library/windows/apps/xaml/dn631755.aspx. Это также описано в моем разговоре по строительству здесь: http://channel9.msdn.com/Events/Build/2014/2-520.

И, наконец, ответ на этот вопрос: Windows Phone, pick file using PickSingleFileAndContinue or PickMultipleFilesAndContinue У вопроса StackOverflow также есть образец.

0

В предварительном просмотре Win10 SDK это работает так же, как и на WinRT, так как телефон & все остальное будет просто использовать PickMultipleFilesAsync

Смежные вопросы