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 ,难怪会崩溃。
而今天恰好是周日!!!所以我因此浪费了将近一个小时。。。。。。
改成这样写:
class="brush:csharp;gutter:true;">if ((int)DateTime.Today.DayOfWeek!=0) { MyClass.SelectedIndex = ((int)DateTime.Today.DayOfWeek-1); } else { MyClass.SelectedIndex = 6; }
问题解决.
总结:在写代码时一定的提前多思考,注意对应的计数起点;这样才能减少Bug(尤其是这种星期天Bug!),提高效率。