windows-phone-7 – 无尽的枢轴控制
发布时间:2020-12-13 20:34:54 所属栏目:Windows 来源:网络整理
导读:我正在尝试将Pivot控件用于日历类型的应用程序,其中每个Pivot视图显示有关当天的一些信息.当用户向前滑动时,显示第二天.我通过在Pivot Item集合的末尾添加项目来实现这一点,这很好. 当用户尝试返回前一天时,我的问题就出现了.在这种情况下,在Pivot项集合的开
我正在尝试将Pivot控件用于日历类型的应用程序,其中每个Pivot视图显示有关当天的一些信息.当用户向前滑动时,显示第二天.我通过在Pivot Item集合的末尾添加项目来实现这一点,这很好.
当用户尝试返回前一天时,我的问题就出现了.在这种情况下,在Pivot项集合的开头添加一个新项.虽然添加有效,但显示的Pivot项始终是错误的(即新添加的项).在Pivot控件上设置SelectedItem没有帮助. 我认为Pivot可能不是我的任务的正确控制,所以任何关于使用什么视图或如何修复我的上述Pivot问题的帮助都非常感谢. 我的Viewmodel的代码,它实现了前进/后退一天. public class TrackDayViewModel : HubViewModelBase { private DateTime _CurrentDay; public DateTime CurrentDay { get { return _CurrentDay; } set { if (value.CompareTo (_CurrentDay) != 0) { _CurrentDay = value; OnPropertyChanged("CurrentDay"); } } } public TrackDayViewModel () { var day = DateTime.Now; CurrentDay = day.Midnight(); Pages.Add(new DayViewModel(CurrentDay.AddDays(-1))); Pages.Add(new DayViewModel(CurrentDay)); Pages.Add(new DayViewModel(CurrentDay.AddDays(1))); SelectedItem = Pages[1]; this.PropertyChanged += (s,e) => { if (e.PropertyName == "SelectedItem") { var si = SelectedItem as DayViewModel; if (si != null) { var idx = Pages.IndexOf(SelectedItem); if (idx==0) { Pages.Insert(0,new DayViewModel(si.Day.AddDays(-1))); SelectedItem = Pages[1]; } else if (idx == (Pages.Count - 1)) { Pages.Add(new DayViewModel(si.Day.AddDays(1))); } } } }; } } 编辑:改变解决了我的问题: this.PropertyChanged += (s,e) => { if (e.PropertyName == "SelectedItem") { var si = SelectedItem as DayViewModel; if (si != null) { var idx = Pages.IndexOf(SelectedItem); int nextIdx = (idx + 1) % 3; int prevIdx = ((idx - 1)<0) ? 2 : (idx-1); Pages[nextIdx] = new DayViewModel(si.Day.AddDays(1)); Pages[prevIdx] = new DayViewModel(si.Day.AddDays(-1)); } } };
为此,我将使用4页的Pivot控件.
在任何时候,前一页,当前页和下一页都将包含正确的数据 – 您将始终拥有一个(空)页面 然后,您可以在当前页面更改并更改时响应事件 – 使用这些事件将当前(空)页面设置为正确的新内容,然后清除新(空)页面. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- Windows – 如何将多个文件名传递给上下文菜单Shell命令?
- 从.NET DLL – app.config问题消耗webservice
- 【旧文章搬运】Windows内核常见数据结构(驱动相关)
- Windows 10 安装 VMware workstation 12 版本出错,不兼容。
- windows-7 – 如何将UAC盾牌图标添加到仍然必须以XP为目标的
- windows-phone-8 – 适用于Windows Phone 8的任何图表[已关
- Tridion工作流程插件在Microsoft Visio 2010中不活动
- ms访问 – Microsoft Access在表中压缩多行
- virtualbox – 未找到GENY MOTION虚拟引擎错误
- audio – 如何将PJSIP与VOIP chatterbox示例应用程序Window