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!),提高效率。

时间: 2024-10-13 17:21:32

WP8.1 Pivot 控件的SelectedIndex 属性与星期天BUG的相关文章

C#控件方法及属性大全,望补充

C#控件及常用设计整理 1.窗体 常用属性 (1)Name属性:用来获取或设置窗体的名称,在应用程序中可通过Name属性来引用窗体. (2) WindowState属性: 用来获取或设置窗体的窗口状态. 取值有三种: Normal (窗体正常显示). Minimized (窗体以最小化形式显示)和 Maximized(窗体以最大化形式显示). (3)StartPosition属性:用来获取或设置运行时窗体的起始位置. (4)Text属性:该属性是一个字符串属性,用来设置或返回在窗口标题栏中显示的

Panorama和Pivot控件

Windows Phone提供了Panorama和Pivot这两种控件供用户横向切换导航的方式来显示具有内容比较相关的页面.本文主要对这两个控件进行描述,包括如何使用,以及一些最佳实践. 其中包括如下部分: Panorama控件 Pivot控件 如何在二者之间选择 在项目中填加它们 Panorama控件示例 Pivot控件示例 最佳实践 Panorama控件 Panorama控件用来在一个很长的横向面板上显示相关的内容,屏幕之外的内容可以依次切入到屏幕中,可以通过左右滑动的方式来切换它们.当看到

控件gridview的属性全集

1. GridView控件的属性 表10.6 GridView控件的行为属性 属性 描述 AllowPaging 指示该控件是否支持分页. AllowSorting 指示该控件是否支持排序. AutoGenerateColumns 指示是否自动地为数据源中的每个字段创建列.默认为true. AutoGenerateDeleteButton 指示该控件是否包含一个按钮列以允许用户删除映射到被单击行的记录. AutoGenerateEditButton 指示该控件是否包含一个按钮列以允许用户编辑映射

关于Button控件的CommandName属性用法的一个实例

1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Web; 5 using System.Web.UI; 6 using System.Web.UI.WebControls; 7 using System.Data; 8 using System.Data.SqlClient; 9 using System.Configuration; 10 11 public part

DOM访问HTML元素的方式,DOM访问表单控件的常用属性和方法,DOM访问列表框、下拉菜单的常用属性,DOM访问表格子元素的常用属性和方法,DOM对HTML元素的增删改操作

DOM访问HTML元素的方式 为了动态地修改HTML元素,须先访问HTML元素.DOM主要提供了两种方式来访问HTML元素: 根据ID访问HTML元素:通过document对象调用getElementById()方法来查找具有唯一id属性值的元素. 利用节点关系访问HTML元素.常用的属性和方法如下: parentNode 返回当前节点的父节点 previousSibling 返回当前节点的前一个兄弟节点 nextSibling 返回当前节点的后一个兄弟节点 childNodes 返回当前节点的

TextBox控件的DataBindings属性

DataBindings属性是很多控件都有的属性,作用有2方面.一方面是用于与数据库的数据进行绑定,进行数据显示.另一方面用于与控件或类的对象进行数据绑定.这里主要关注后者.主要用法是将某个对象的某个属性与指定对象的指定属性进行关联. Label.TextBox等都包含DataBindings属性,其类型为ControlBindingsCollection,是Binding类的集合.Binding类代表某对象属性值和某控件属性值之间的简单绑定.如可以将TextBox的Text属性值绑定到Labe

Android培训准备资料之UI一些相似控件和控件一些相似属性之间的区别

这一篇博客主要收集五大布局中的一些相似控件和控件一些相似属性之间的区别 ImageView ImageButton Button 三者有啥区别? (1)Button继承自TextView,ImageView继承自View,ImageButton继承自ImageView                                              (2)Button支持android:text属性,而ImageButton和ImageView不支持,但是ImageView和ImageB

Android - 控件android:ems属性

控件android:ems属性 本文地址:http://blog.csdn.net/caroline_wendy xml中android:ems属性,作为EditText默认生成的属性,其含义是需要编辑的字符串长度. 设置为10时,最多编辑10个em,一个em单位是两个inch,但是随着自动调整,在Android中em代表'M'的数量. 但是EditText的属性,只有在android:layout_width="wrap_content"时,才会显示: 如果是android:layo

Android 控件布局常用属性

<!--单个控件经常用到android:id -- 为控件指定相应的IDandroid:text -- 指定控件当中显示的文字,需要注意的是,这里尽量使用strings.xml文件当中的字符串android:grivity -- 指定控件的基本位置,比如说居中,居右等位置android:textSize -- 指定控件当中字体的大小android:background -- 指定该控件所使用的背景色,RGB命名法 android:width -- 指定控件的宽度android:height --