WPDNews项目中遇到的问题集锦,PivotItem加载问题

在使用Pivot的过程中,一直有一个问题困扰着我至今还没想到解决办法,先记录下来:


 

 

  1. Pivot用作数据绑定,通过数据绑定来实现,它每一个子项PivotItem分别绑定MainViewItem中的一个集合,先假设它有五个PivotItem子项,给他们编号为0,1,2,3,4。现在当模拟机启动,pivot获得焦点的时候内部并不是去取对应的PivotItem绑定的数据集合,而是在取0的同时也会去取1跟4,就是说获得当前焦点的PivotItem的左边的一个跟右边的一个PivotItem都自动去取数据了,顺序是0,1,4;这就麻烦了,本来是控制后段代码加载一个数据显示一个数据的,现在加载一个数据的时候他还是会显示三个数据,所以常常报错的。
  2. 下面的代码的运行顺序出乎我的意料
复制代码
  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);
        }  
复制代码

 1.先运行MainPage()构造函数这个毫无疑问,但是当this.Loaded += new RoutedEventHandler(MainPage_Loaded);运行之后并不是调用里面所触发的MainPage_Loaded所触发的方法

2.去执行 myPivot_SelectionChanged方法。

3.去获得当前前台的PivotItem所绑定的数据 

 

 

posted @   张小然  阅读(281)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 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的设计模式综述
点击右上角即可分享
微信分享提示