shashwat bajpai
shashwat bajpai

Reputation: 9

I am trying to browse file in MvvmCross using inbuilt class CrossFilePicker of Plugin.File

using MvvmCross.Core.ViewModels;
using StoreChecker.Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Plugin.FilePicker;
using MvvmCross.Platform;
using MvvmCross.Plugins.File;
namespace StoreChecker.ViewModels
{

   public class AddNewBrandViewModel:MvxViewModel
    {
  private  void BrowseFiles()
        {
 CrossFilePicker.Current.PickFile();
}
}

after clicking browse file button I wil get into file manger of my device. If I have not selected any files from storage and press back button of my device it will come to my application then again if I click on my browse file button then it will not open file browser.Then I am getting exception System.Invalid.Operation Exception.I think browsing a files is not async method so its still in progress

Upvotes: 0

Views: 320

Answers (1)

MakeAndDevelop
MakeAndDevelop

Reputation: 116

PickFile() is an awaitable Task. It starts an asynchronous operation that returns an instance of Plugin.FilePicker.Abstractions.FileData or null if no file is selected.

You should await the task:

using MvvmCross.Core.ViewModels;
using StoreChecker.Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Plugin.FilePicker;
using MvvmCross.Platform;
using MvvmCross.Plugins.File;
namespace StoreChecker.ViewModels
{

    public class AddNewBrandViewModel : MvxViewModel
    {
        private async Task BrowseFiles()
        {
            var fileData = await CrossFilePicker.Current.PickFile();
            // Do something with your file data
        }
}

Upvotes: 0

Related Questions