2014-10-11 4 views
0

Newtonsoft JSON 라이브러리를 사용하여 웹 서버의 JSON 응답을 역 직렬화합니다. 아, 이상하게도 나는 데이터를 다르게 확인했지만 항상 같은 데이터를받습니다.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이 데이터를 캐시하므로 "http://www.thestringsproject.com/q/json?x="+DateTime.Now.Ticks처럼 URL에 임의의 매개 변수를 추가하고 서버에서 가져온 데이터를 확인하십시오.

두 번째 것은 새 데이터를 다시 가져 오지만 App.ViewModel입니다. 항목이 ObservableCollection<T> 대신에 간단 List<T>이므로 UI가 업데이트되지 않는 것입니다.

+0

감사합니다. 그것은 효과가 있었다. –

관련 문제