2012-12-20 119 views
3

我在寫一個示例windows phone 8應用程序。我還安裝了框架Async for .NET Framework 4, Silverlight 4 and 5, and Windows PhoneWindows Phone 8等待不等待

但是,等待一個方法不等待,我的mainpage.xaml加載它試圖訪問尚未填充的屬性。

這是我的代碼。

public static ObservableCollection<Model.CatalogCategory> Products { get; set; } 
private async void Application_Launching(object sender, LaunchingEventArgs e) 
    { 
     ApplicationViewModel vm = new ApplicationViewModel(); 
     Products = await vm.LoadLocalDataAsync(); 

    } 

在此方法之後,加載mainpage.xaml,嘗試訪問「Products」並引發空引用異常。

是否有不同的方法,我需要採取?

回答

5

您不明白Async和'await'的含義是否正確。 '等待'僅等待該方法塊中的其餘代碼。 await行之後的其餘代碼被轉換爲僅在異步任務完成後調用的回調。這並不妨礙整個方法。該方法被視爲已完成,控制權返回給調用者。

您可以在那裏刪除'await'或嘗試在MainPage_Loaded事件或OnNavigatedTo事件中加載數據。無論適合你。