你的位置:首页 > ASP.net教程

[ASP.net教程]WP8.1 Pivot 控件的SelectedIndex 属性与星期天BUG


Pivot 控件有一个SelectedIndex 可以指定当前显示的Pivot Item;

我在一个应用中将周一到周日,一共对应七个Pivot Item,并想实现一打开应用就显示当前日期对应的星期页面 于是这样写:   SelectedIndex =(int)DateTime.Today.DayOfWeek;

结果显示的并不是当天的页面,而是第二天的页面。

于是我就将上面的代码写成 SelectedIndex =((int)DateTime.Today.DayOfWeek-1);

这样过了几天,调试起来都没得问题。

直到今天,这个应用进去就黑屏;我起初还以为这是今天添加的代码有问题,于是将今天添加的代码都注释掉,结果还是黑屏。

一直折腾了快一个小时,断点,调试,还是没解决。

当我看到 SelectedIndex =((int)DateTime.Today.DayOfWeek-1);这行代码,突然意识到星期是从周日开始数的;

马上查了一下,原来 (int)DateTime.Today.DayOfWeek 返回的整数是{0,1,2,3,4,5,6,};依次对应{周日,周一,...,周五,周六};

Pivot Item 也是从0开始计数的,所以应用中周日对应的SelectedIndex 应该为6;而现在得到的结果是-1 ,难怪会崩溃。

而今天恰好是周日!!!所以我因此浪费了将近一个小时。。。。。。

改成这样写:

if ((int)DateTime.Today.DayOfWeek!=0)      {        MyClass.SelectedIndex = ((int)DateTime.Today.DayOfWeek-1);      }      else      {        MyClass.SelectedIndex = 6;      }

问题解决. 

总结:在写代码时一定的提前多思考,注意对应的计数起点;这样才能减少Bug(尤其是这种星期天Bug!),提高效率。