I will try to tell my problem in as simple words as possible. In my UWP app, I am loading the data async wise on my Mainpage.xaml.cs`
public MainPage()
{
    this.InitializeComponent();
    LoadVideoLibrary();
}
private async void LoadVideoLibrary()
{
    FoldersData = new List<FolderData>();
    var folders = (await Windows.Storage.StorageLibrary.GetLibraryAsync
                   (Windows.Storage.KnownLibraryId.Videos)).Folders;
    foreach (var folder in folders)
    {
        var files = (await   folder.GetFilesAsync(Windows.Storage.Search.CommonFileQuery.OrderByDate)).ToList();
        FoldersData.Add(new FolderData { files = files, foldername = folder.DisplayName, folderid = folder.FolderRelativeId });
    }
    }
so this is the code where I am loading up a List of FolderData objects. There in my other page Library.xaml.cs I am using that data to load up my gridview with binding data.
    protected override void OnNavigatedTo(NavigationEventArgs e)
    {
        try
        {
            LoadLibraryMenuGrid();
        }
        catch { }
    }
    private async void LoadLibraryMenuGrid()
    {
        MenuGridItems = new ObservableCollection<MenuItemModel>();
        var data = MainPage.FoldersData;
        foreach (var folder in data)
        {
            var image = new BitmapImage();
            if (folder.files.Count == 0)
            {
                image.UriSource = new Uri("ms-appx:///Assets/StoreLogo.png");
            }
            else
            {
                for (int i = 0; i < folder.files.Count; i++)
                {
                    var thumb = (await folder.files[i].GetThumbnailAsync(Windows.Storage.FileProperties.ThumbnailMode.VideosView));
                    if (thumb != null) { await image.SetSourceAsync(thumb); break; }
                }
            }
            MenuGridItems.Add(new MenuItemModel
            {
                numberofvideos = folder.files.Count.ToString(),
                folder = folder.foldername,
                folderid = folder.folderid,
                image = image
            });
        }
        GridHeader = "Library";
    }
the problem I am facing is that when i launch my application, wait for a few seconds and then i navigate to my library page, all data loads up properly.
but when i try to navigate to library page instantly after launching the app, it gives an exception that
"collection was modified so it cannot be iterated"
I used the breakpoint and i came to know that if i give it a few seconds the List Folder Data is already loaded properly asyncornously, but when i dnt give it a few seconds, that async method is on half way of loading the data so it causes exception, how can i handle this async situation? thanks
 
     
     
    