JSON数据未在Windows Phone 8中更新



我正在使用Newtonsoft JSON库来反序列化来自web服务器的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() });
                }
            }
        }

我想到了两件事。第一个是WebClient缓存数据,所以尝试在url中添加一些随机参数,比如"http://www.thestringsproject.com/q/json?x="+DateTime.Now.Ticks,并检查从服务器返回的数据。

第二种方法是,您可以取回新数据,但App.ViewModel。Items是一个简单的List<T>,而不是ObservableCollection<T>,因此数据只是UI不会更新。

相关内容

  • 没有找到相关文章

最新更新