首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > 移动开发 >

wp7中关于ListPicker的ItemSource的一个疑义

2012-09-21 
wp7中关于ListPicker的ItemSource的一个疑问今天意外的发现struct与class之间的一些区别。就是这些区别导致

wp7中关于ListPicker的ItemSource的一个疑问

今天意外的发现struct与class之间的一些区别。就是这些区别导致了在使用这两个类型的数据作为ListPicker的ItemSource时的效果不一样。

(1)使用struct类型对象作为ListPicker的ItemSource

首先定义了一个这样一个struct结构体:

    public class MonthListPickerItem    {        public long Month{get;set;}        public bool IsLunarMonth{get;set;}        public MonthListPickerItem(long month, bool isLunarMonth)        {            Month = month;            IsLunarMonth = isLunarMonth;        }    };

这到底是什么原因呢?
struct对象是在栈上创建的,而class对象则是在堆上创建的。在堆上创建的对象在数据块索引和地址空间方面会不一样,即使存储的内容一样;程序在设置选中项的时候,估计是这些方面做了判断,只要是class类型对象使用了new,实际上它们就永远不相等,因此也就是找不到要默认选中的选项。

因此会出现这样的选中项设置无效的情况吧。

------------------------------------------------------------------

但目前没有深究这些问题,实际情况是不是上面所说的这样也不能保证,先作为一个笔记吧,有时间再来确定一下。



热点排行