2010-07-25 128 views
1

在Windows Phone 7中使用列表框我試圖做一個異步Web服務調用,然後更新成功的列表框。Silverlight列表框項目源更改沒有更新列表

調用Web服務的方法是這樣的:

public void GetReadingList(Action<ObservableCollection<MiniStoryViewModel>> success, Action<string> failure) 

我打電話這段代碼的方法:

 api.GetReadingList(
      (items) => Dispatcher.BeginInvoke(() => 
      { 
       lsbNewest.ItemsSource = items; 
      }), 
      (error) => 
      { 
       MessageBox.Show(error); 
      }); 

使用此代碼沒有任何反應UI明智的,直到我點擊或滾動上列表框 - 然後其內容被正確更新。我假設代碼沒有在正確的線程上運行,我該如何解決這個問題?

+0

有完全相同的問題......非常沮喪。另外,我認爲這與穿線沒有任何關係..至少在我的情況下不是這樣。 – jspru 2010-07-29 21:28:21

+0

.......問題隨即消失。也令人沮喪。 – jspru 2010-07-29 21:36:38

回答

0

我解決我被我的視圖模型實現INotifyPropertyChanged的,提高遇到的問題屬性更改了ui線程上的事件。

1

在你的代碼中沒有錯誤,你是正確的關於規範...

嘗試:刷新的ItemsSource,然後用的AddRange,或其他任何物品填充它。 檢查您的用戶界面是否自動更新。

如果沒有,在Windows上創建一個基本的Silverlight應用程序,並比較兩種行爲...也許一個bug; =)