我有一個SL應用程序從數據庫中讀取一些數據,我通過WCF服務來完成這些數據。由於此訪問,我遇到了一些延遲問題,所以我通過將所有數據加載到我的應用程序中的字典中解決了這個問題。現在我想確保應用程序只會在我加載所有這些信息後才顯示,我該怎麼做?我認爲只需在數據加載後放置InitializeComponents就足夠了,但事實並非如此。這裏是我的一些代碼:如何讓我的Silverlight應用程序在加載數據後顯示?
public Brasil()
{
//InitializeComponent();
webService = new DataRetrieverReference.DataRetrieverClient();
webService.GetCounterCompleted += new EventHandler<WebPortos.DataRetrieverReference.GetCounterCompletedEventArgs>(webService_GetCounterCompleted);
webService.GetCounterAsync();
webService.GetDataCompleted += new EventHandler<DataRetrieverReference.GetDataCompletedEventArgs>(webService_GetDataCompleted);
}
void webService_GetCounterCompleted(object sender, WebPortos.DataRetrieverReference.GetCounterCompletedEventArgs e)
{
int counter = e.Result;
this.dictionary = new Dictionary<int, WebPortos.DataRetrieverReference.vwPortos_SEP>();
for (int i = 0; i < counter; i++)
{
webService.GetDataAsync(i);
}
InitializeComponent();
}
正如你所看到的,我把它放在我的數據加載方法中,但它沒有工作。有小費嗎?
問題是,它是打算成爲現實世界的解決方案...我會在截止日期後修復它。 – 2010-09-09 17:04:33
那麼爲什麼不使用busyindicator?只需將所有內容放入一個,並設置IsBusy屬性來控制它。歡呼 – 2010-09-09 17:29:06