2014-10-11 41 views
0

我正在使用Newtonsoft JSON庫反序列化來自我的Web服務器的JSON響應。 NOW,奇怪的是,我總是收到相同的數據,雖然數據不同,因爲我已經檢查。在Windows Phone 8中未更新的JSON數據

代碼:

public Questions() 
     { 
      InitializeComponent(); 
      this.DataContext = App.ViewModel; 
      WebClient wc = new WebClient(); 

      Uri request = new Uri("http://www.thestringsproject.com/q/json"); 
      wc.DownloadStringCompleted += new DownloadStringCompletedEventHandler(CompletedDownload); 
      wc.DownloadStringAsync(request); 


     } 

     private void CompletedDownload(object sender, DownloadStringCompletedEventArgs e) 
     { 

      var container = JsonConvert.DeserializeObject(e.Result) as JObject; 

      List<JObject> result = container["cs"].Children() 
           .Cast<JObject>() 

           .ToList(); 
      foreach (JObject p in result) 
      { 
       var q = p["question"]; 
       questions.Add(q.ToString()); 
      } 

      App.ViewModel.Items.Clear(); 
      if (questions.Count > 0) 
      { 
       App.ViewModel.Items.Clear(); 
       for (int i = 0; i < questions.Count; i++) 
       { 
        App.ViewModel.Items.Add(new ItemViewModel { LineOne = questions[i], LineThree=(i+1).ToString() }); 
       } 
      } 

     } 

回答

2

有兩件事情采取浮現在腦海中。首先,WebClient緩存數據,因此請嘗試向URL添加一些隨機參數,如"http://www.thestringsproject.com/q/json?x="+DateTime.Now.Ticks,並檢查從服務器獲取的數據。

第二個是你得到新的數據,但App.ViewModel.Items是一個簡單的List<T>,而不是ObservableCollection<T>,所以數據是正義的用戶界面沒有得到更新。

+0

非常感謝。有效。 – 2014-10-12 04:53:06

相關問題