2015-02-03 3 views
1

누군가 내 자신의 유니버셜 윈도우 스토어 앱 코딩에 도움을 줄 수 있습니다. xaml 페이지에서 파일을 선택하고 Windows Phone 8.1의 공유 계약을 사용하여 공유하도록 할 수 있습니다. 문제는 내 Windows 전화 8.1 응용 프로그램입니다. 중단 점에 도달 한 파일을 선택하면이 코드 줄을 인식하지 못합니다. IReadOnlyList pickedFiles = filePicker.PickMultipleFilesAsync()를 기다립니다. 이 기능은 Windows Phone 8.1 버전이 아닌 Windows 8.1 버전에서 작동합니다.윈도우 폰에서 파일 공유하기 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

Windows Phone 8.1의 파일 선택기 API는 약간 다르게 작동합니다. FileOpenPicker.PickMultipleFilesAsync 대신 FileOpenPicker.PickMultipleFilesAndContinue를 호출해야합니다. 이 기사는 더 많은 컨텍스트를 제공합니다 : https://msdn.microsoft.com/en-us/library/windows/apps/xaml/dn631755.aspx. 이것은 Build talk here : http://channel9.msdn.com/Events/Build/2014/2-520에서도 다룹니다.

마지막으로, 이에 대한 대답은 Windows Phone, pick file using PickSingleFileAndContinue or PickMultipleFilesAndContinue StackOverflow 질문에도 샘플이 있습니다.

0

Win10 SDK의 미리보기에서이 기능은 WinRT와 동일하므로 전화 번호 &은 PickMultipleFilesAsync를 사용합니다.