This might be a silly question. But when I modified one example from Live SDK example, got a weird problem.
I was thinking the root cause is async function GetAll() was used synchronously.
Below is the code snippet, I put the problem as comments. Thanks in advance!
class SkyeDriveViewModel: INotifyPropertyChanged
{
    private List<SkyDriveItem> folderList = null;
    public List<SkyDriveItem> FolderList
    {
        get { return folderList; }
        private set
        {
            if (value != folderList)
            {
                folderList = value;
                NotifyPropertyChanged("FolderList");
            }
        }
    }
    private async void GetAll(string desiredPath)
    {
        FolderList = new List<SkyDriveItem>();
        this.liveClient = new LiveConnectClient(SkyDrivePage.Session);
        try
        {
            LiveOperationResult operationResult = await this.liveClient.GetAsync(desiredPath);
            dynamic result = operationResult.Result;
            dynamic items = result.data;
            foreach (dynamic item in items)
            {
                SkyDriveItem newItem = new SkyDriveItem(item);
                if (newItem.IsFolder)
                {
                    FolderList.Add(newItem);
                }
            }
        }
        catch (LiveConnectException e)
        {
        }
        //**till here, FolderList was assigned**
    }
    public void InitList()
    {
        Debugger.Log();
        GetAll(SKYDRIVEINITPATH);
        Debugger.LogWhen(eDebugger.LogTiming.Exit); 
        //**till here, FolderList had zero item**
    }
}
 
     
    