列表视图中"Value does not fall within the expected range"例外



适用于 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; }
    }

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

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

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

listView.ItemsSource = deserialized.cs;

列表视图应显示C对象。

我总是很难弄清楚如何从序列化程序输出中前进。 我确实有工作代码(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;

相关内容

最新更新