Reputation: 9
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
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