【问题标题】:"Value does not fall within the expected range" exception in ListViewListView 中的“值不在预期范围内”异常
【发布时间】:2012-11-25 00:06:22
【问题描述】:

适用于 Windows 8 应用程序开发环境。

代码:

   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; }
    }

我能做什么?我没有找到解决方案。

【问题讨论】:

    标签: c# windows-8 microsoft-metro


    【解决方案1】:

    ItemsSource 正在寻找 IEnumerable,但您在 RootObject 中提供了一个对象。如果您在代码中创建一个 RootObject 实例并尝试相同的分配,您会得到同样的错误。

    列表中具体应该显示什么?如果您只是将代码更改为:

    listView.ItemsSource = deserialized.cs;
    

    listView 应该显示您的 C 对象。

    【讨论】:

    • 我问了想了想,找到了! :) 不过谢谢。你的回答是真的。
    【解决方案2】:

    我总是难以弄清楚如何从序列化器输出中走出来。我确实有我在下面粘贴的工作代码(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;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-07
      • 1970-01-01
      相关资源
      最近更新 更多