WPDNews项目中遇到的问题集锦,PivotItem加载问题
在使用Pivot的过程中,一直有一个问题困扰着我至今还没想到解决办法,先记录下来:
- Pivot用作数据绑定,通过数据绑定来实现,它每一个子项PivotItem分别绑定MainViewItem中的一个集合,先假设它有五个PivotItem子项,给他们编号为0,1,2,3,4。现在当模拟机启动,pivot获得焦点的时候内部并不是去取对应的PivotItem绑定的数据集合,而是在取0的同时也会去取1跟4,就是说获得当前焦点的PivotItem的左边的一个跟右边的一个PivotItem都自动去取数据了,顺序是0,1,4;这就麻烦了,本来是控制后段代码加载一个数据显示一个数据的,现在加载一个数据的时候他还是会显示三个数据,所以常常报错的。
- 下面的代码的运行顺序出乎我的意料
public MainPage()
{
InitializeComponent();
// Set the data context of the listbox control to the sample data
DataContext = App.ViewModel;
this.Loaded += new RoutedEventHandler(MainPage_Loaded);
}
// Load data for the ViewModel Items
private void MainPage_Loaded(object sender, RoutedEventArgs )
{
if (!App.ViewModel.IsDataLoaded)
{
App.ViewModel.LoadData();
}
}
private void myPivot_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
Debug.WriteLine(myPivot.SelectedIndex);
}
{
InitializeComponent();
// Set the data context of the listbox control to the sample data
DataContext = App.ViewModel;
this.Loaded += new RoutedEventHandler(MainPage_Loaded);
}
// Load data for the ViewModel Items
private void MainPage_Loaded(object sender, RoutedEventArgs )
{
if (!App.ViewModel.IsDataLoaded)
{
App.ViewModel.LoadData();
}
}
private void myPivot_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
Debug.WriteLine(myPivot.SelectedIndex);
}
1.先运行MainPage()构造函数这个毫无疑问,但是当this.Loaded += new RoutedEventHandler(MainPage_Loaded);运行之后并不是调用里面所触发的MainPage_Loaded所触发的方法
2.去执行 myPivot_SelectionChanged方法。
3.去获得当前前台的PivotItem所绑定的数据
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· [AI/GPT/综述] AI Agent的设计模式综述