2

Windows8アプリケーション開発環境の場合。

コード:

   var deserialized = JsonConvert.DeserializeObject<RootObject>(json);
   listView.ItemsSource = deserialized; // error

データ・モデル:

    public class C
    {
        public List<Y> programs { get; set; }
        public string name { get; set; }
        public int code { get; set; }
    }
    public class RootObject
    {
        public List<C> cs { get; set; }
        public string date { get; set; }
    }
    public class Y
    {
        public string category { get; set; }
        public string time { get; set; }
        public string name { get; set; }
    }

私に何ができる ?解決策が見つかりません。

4

2 に答える 2

3

ItemsSourceを探してIEnumerableいますが、 で単一のオブジェクトを提供していますRootObject。コードで RootObject インスタンスの 1 つを作成し、同じ割り当てを試みると、同じエラーが発生します。

リストには具体的に何を表示する必要がありますか? コードを次のように変更するだけの場合:

listView.ItemsSource = deserialized.cs;

listView にCオブジェクトが表示されます。

于 2012-11-25T04:40:08.423 に答える
0

シリアライザーの出力からどうやって行くのか、いつも頭を悩ませています。以下に貼り付ける作業コード (Windows 8 ストア) があります。それが何をするかは明らかです。

                HttpResponseMessage responseGetEmailByPersonsBare =
                         await clientGetEmailByPersonsBare.PostAsync(UrlBase + EmailDetailGetEmailByPersonsBare, contentGetEmailByPersonsBare);
                     Stream myStream = await responseGetEmailByPersonsBare.Content.ReadAsStreamAsync();
                     var djsGetEmailByPersonsBare = new DataContractJsonSerializer(typeof(AEWebDataStructures.RootObjectEmailDetail));

                     var rootObjectEmailDetail = (AEWebDataStructures.RootObjectEmailDetail)djsGetEmailByPersonsBare.ReadObject(myStream);
                     responseGetEmailByPersonsBare.EnsureSuccessStatusCode();
                     returnTaskInfo.EmailDetails = rootObjectEmailDetail.Data;
                     returnTaskInfo.StatusReturn = AEWebDataStructures.StatusReturn.Success;
于 2012-11-25T01:29:40.937 に答える