private async Task GetAllFolderItems(MenuGroup parentGroup, StorageFolder storageFolder) { var folders = await storageFolder.GetFoldersAsync(); for (int j = 0; j < folders.Count; j++) { var childGroup = new MenuGroup(folders[j].Name, "", ""); var files = await folders[j].GetFilesAsync(); for (int i = 0; i < files.Count; i++) { decimal price = 0; var name = files[i].Name.Replace(".jpg", String.Empty); var regxValue = Regex.Match(name, @"\d+(\.\d+)?"); if (regxValue.Success) { price = decimal.Parse(regxValue.Value, CultureInfo.InvariantCulture); } name = name.Replace(regxValue.Value, String.Empty); childGroup.Items.Add(new Menu(files[i].Name, price, files[i].Path, "", "")); } parentGroup.ChildGroups.Add(childGroup); await GetAllFolderItems(childGroup, folders[j]); } }