C# 如何在windows phone中为从url获取的异步Json数据创建列表框?

C# 如何在windows phone中为从url获取的异步Json数据创建列表框?,c#,json,windows-phone-7,asynchronous,listbox,C#,Json,Windows Phone 7,Asynchronous,Listbox,我通过 如果我尝试使用(作为示例) 我可以使一个常数数据不是一个列表框 我已经做了一个android应用程序。。对于Json表单,请使用Url。。这是我的Json数据(与此类似) 像这样有一个巨大的JSON数据这只是一个JSON数据的一个循环。。。我有N个JSON数据循环,所以我想显示数据 所以在android中,我用Hashmap解析Json,现在在C中,我用类似的方式解析Json。。 所以在这里我想要一个列表框。。在android中,我使用ListView+onclick单项目视图 在wi

我通过

如果我尝试使用(作为示例)

我可以使一个常数数据不是一个列表框

我已经做了一个android应用程序。。对于Json表单,请使用Url。。这是我的Json数据(与此类似)

像这样有一个巨大的JSON数据这只是一个JSON数据的一个循环。。。我有N个JSON数据循环,所以我想显示数据

所以在android中,我用Hashmap解析Json,现在在C中,我用类似的方式解析Json。。

所以在这里我想要一个列表框。。在android中,我使用ListView+onclick单项目视图

在windows中,我发现一个列表框+onclick single item By,但它不是JSON,而是一个XML JSON,我希望它是JSON

我想添加一个相同的列表框,其中包含JSON数据和异步任务,该任务基于

 JObject json = JObject.Parse(eArgs.Result);
        JArray category_list = (JArray)json["category_list"];

        this.jAbout.Text = (string)json["about"];
像那样


所以这看起来和android应用程序一样。。。有没有办法在windows phone应用程序中为JSON创建相同的闪烁应用程序。

在windows phone 7中存在表示不同类型集合的列表框长列表选择器(来自windows phone toolkit)控件。 ListBox使用起来更简单。 ListBox具有ItemsSource属性

只能从主线程使用UIElements。但是您可以在后台线程中准备所有内容

如何使用列表框:

  • 您可以将任何IEnumerable实例放在那里,或者使用从IEnumerable继承的类型绑定某些属性(例如List或ObservableCollection。第二个更适合绑定)。“yourDataModelClass”是一个类,它包含ListBox项的所有属性。如果您喜欢LINQ,可以使用它(developer.nokia.com)反序列化XML。 对于ListBox,您必须设置ItemTemplate属性(最好从XAML进行设置)()
  • 正如我已经提到的,您可以将一些集合绑定到ItemsSource属性。因此,您将此集合放入ListBox的DataContext属性中,在XAML中,您可以这样编写。因此,如果集合是ObservableCollection,那么已经实现了INotifyPropertyChanged,并且如果附加了一些项(这里是您还必须创建一些ItemTemplate),则此集合将通知其所有者。因此,如果已经将此集合设置为DataContex,则无法在后台线程中将某些内容添加到其中。最好阅读有关MVVM模式的内容,这很酷\m/
  • 使用ListBox还有另一种方法:可以将ListBox项添加到其名为项的属性中
  • 对于异步工作,这里有两种方法:

  • 后台工作人员class()
  • 异步任务(您需要使用此库)(以下是使用的任务示例)
  • 因此,这种方法将帮助您异步执行任何您想要的操作。享受=)

    当解析JSON并准备向用户显示它时,不要忘记返回到主线程(Deployment.Current.Dispatcher.BeginInvoke(Action);-这是在需要时返回UI线程的方法,但我的建议是阅读BackgroundWorker和异步任务)

    {
    "returnCode": "success",
    "Data": {
    "results": [
    {
        "moredetails": [
            {
                "newoffers": [
    
                ],
                "recentoffers_count": 0,
                "sku": "30072246"
            },
            {
                "newoffers": [
                    {
                        "availability": "Available",
                        "currency": "USD"
                    }
                ]
            },
            {
                "newoffers": [
                    {
                        "availability": "Available",
                        "currency": "USD"
                    }
                ],
                "offers_count": 1,
                "name": "google.com"
            }
        ],
        ..."features": {
            ..
        },
        "length": "20",
        "geo": [
            "usa"
        ],
        .."images": ["http://timenerdworld.files.wordpress.com/2013/01/wpid-photo-jan-14-2013-1117-am.jpg"],
        ..
    }
    ],
    ...
    }
    }
    
     JObject json = JObject.Parse(eArgs.Result);
            JArray category_list = (JArray)json["category_list"];
    
            this.jAbout.Text = (string)json["about"];