2014-03-07 2 views
0

RSS 피드 앱에 문제가 있습니다. 내 앱이 시작되면 목록 상자가 피드를 가져와 내 목록 상자에 표시하지만 새로 고침 버튼을 누르면 목록 상자가 업데이트되지 않고 동일한 항목이 다시 표시됩니다.하지만 앱을 닫은 후 다시 실행하면 최신 피드가 표시됩니다. 내가 도울 수있는 누군가가 있기를 바랍니다. 감사.Windows phone refresh listbox ItemsSource

MainWindow.xaml :

<ListBox Grid.Row="1" Name="feedListBox" ScrollViewer.VerticalScrollBarVisibility="Auto" SelectionChanged="feedListBox_SelectionChanged"> 
        <ListBox.ItemTemplate> 
         <DataTemplate> 
          ... 
          ... 
         </DataTemplate> 
        </ListBox.ItemTemplate> 
       </ListBox> 

MainWindow.cs는 :

private void appBarRefresh_Click(object sender, EventArgs e) 
    { 
     feedListBox.ItemsSource = null; 

     GetFeed(IsolatedStorageSettings.ApplicationSettings["key"].ToString()); 
    } 

private void GetFeed(string rss) 
    { 
     WebClient webClient = new WebClient(); 

     webClient.DownloadStringAsync(new System.Uri(rss)); 
     webClient.DownloadStringCompleted += new DownloadStringCompletedEventHandler(webClient_DownloadStringCompleted); 
    } 

private void webClient_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e) 
    { 
     if (e.Error != null) 
     { 
      Deployment.Current.Dispatcher.BeginInvoke(() => 
      { 
       MessageBox.Show(e.Error.Message); 
      }); 
     } 
     else 
     { 
      this.State["feed"] = null; 
      this.State.Clear(); 
      this.State["feed"] = e.Result; 

      UpdateFeedList(e.Result); 
     } 
    } 

private void UpdateFeedList(string feedXML) 
    { 
     StringReader stringReader = new StringReader(feedXML); 
     XmlReader xmlReader = XmlReader.Create(stringReader); 
     SyndicationFeed feed = SyndicationFeed.Load(xmlReader); 

     Deployment.Current.Dispatcher.BeginInvoke(() => 
     { 
      feedListBox.ItemsSource = feed.Items; 
     }); 
     ; 
    } 
+0

범프에서

더 많은 정보를 원하시면 ...이 작동하지 않습니다 도움을 줄 수있는 사람 ... – Thunder

답변

1

UpdateFeedList(string feedXML)

feedListBox.ItemsSource = null; 
feedListBox.ItemsSource = feed.Items; 
+0

있습니다. – Thunder

0

이 시도 목록은 INotifyCollectionChanged 구현되어 있습니까? ObservableCollection이 아닌 경우 해당 내용의 변경 사항이 UI에 자동으로 반영되지 않습니다. 다음 thread

+0

아니요, INotifyCollectionChanged를 구현하는 방법을 모르겠습니다. – Thunder