windows手机绑定数据

时间:2014-01-14 02:09:33

标签: c# mvvm windows-phone-8

我正在使用Windows Phone 8应用程序,这些应用程序使用json文件从restful服务获取数据,我遇到问题,显示我从宁静服务到我的列表框的数据是代码:

            WebClient client = new WebClient();
            client.DownloadStringCompleted += (s,e) =>
                {
                    if(e.Error == null){
                        RootObject result = JsonConvert.DeserializeObject<RootObject>(e.Result);
                        CurrentDay = new ObservableCollection<Item>(result.results.items);
                        MessageBox.Show(CurrentDay[3].title.ToString());
                    }else{
                        MessageBox.Show("Sorry, try again at the next TechEd");
                    }
                };
            client.DownloadStringAsync(new Uri("http://places.nlp.nokia.com/places/v1/discover/explore?at=37.7851%2C-122.4047&cat=transport&tf=plain&pretty=true&app_id=xxxxx&app_code=xxxxx"));

app_id和app_code感谢抱歉:P

在该代码中我无法将数据显示到我的列表框中,但是当我使用它时显示正确的数据

  

MessageBox.Show(CURRENTDAY [3] .title.ToString());

哦,我正在使用mvvm灯光参考

1 个答案:

答案 0 :(得分:0)

我假设您的ListBox将ItemsSource属性设置为CurrentDay

如果是这样,ListBox需要知道属性已更改。

由于您使用的是ObservableCollection,因此ListBox会注意到当前集合的可能性(例如,添加或删除Items),但它无法知道已分配新的ObservableCollection除非您通知它,否则到酒店。

为简单起见,我建议您清除CurrentDay集合并向其中添加项目,而不是每次都创建new ObservableCollection<Item>()

CurrentDay.Clear();
foreach (var item in result.results.items)
    CurrentDay.Add(item);

确保在构造函数中初始化集合:

CurrentDay = new ObservableCollection<Item>();