【问题标题】:How to know it's the first time Pivot Item got focus?如何知道这是 Pivot Item 第一次获得焦点?
【发布时间】:2013-11-13 20:22:52
【问题描述】:

我想加载一些数据,但用户第一次观看PivotItem。如何查看用户第一次使用特殊物品? ...

我可以使用GotFocus 事件并使用像IsLoaded = false 这样的变量,但它看起来不太好。

<phone:PivotItem GotFocus="Item_GotFocus">

【问题讨论】:

    标签: c# xaml windows-phone-7 windows-phone-8 windows-phone


    【解决方案1】:

    为每个PivotItem 命名,例如&lt;phone:PivotItem x:Name="Pivot1"/&gt;,然后使用PivotSelectionChanged

    private void MyPivot_SelectionChanged(object sender, SelectionChangedEventArgs args)
    {
        if(e.AddedItems.Contains(Pivot1))
            //Do stuff here
    }
    

    为了检查他们以前是否去过那里,您可以创建一个List&lt;PivotItem&gt; 并添加已经看过的那些。

    private List<PivotItem> _seenPivots;
    
    // The page constructor
    public MyPage()
    {
        //Regular Page initialization
        _seenPivots = new List<PivotItem>();
    }
    

    然后将SelectionChanged 处理程序更改为:

    private void MyPivot_SelectionChanged(object sender, SelectionChangedEventArgs args)
    {
        if(e.AddedItems.Contains(Pivot1))
        {
            if(_seenPivots.Contains(Pivot1))
                return;
    
            _seenPivots.Add(Pivot1);
            //Do stuff here
        }
    }
    

    希望这对编码有所帮助!

    编辑:添加了第一次检查的部分。

    【讨论】:

    • 感谢@NateDiamond。我检查了它并且它工作但我仍然需要一个变量来检查它是否是第一次激活该项目
    • 已编辑以添加检查
    【解决方案2】:

    尝试使用 LoadingPivotItem 处理程序

    代码sn-p

    XAML

    <controls:Pivot Title="MY APPLICATION" x:Name="MyPivotControl" LoadingPivotItem="Pivot_LoadingPivotItem">
    

    C#

     private void Pivot_LoadingPivotItem(object sender, PivotItemEventArgs e)
        {
            switch (MyPivotControl.SelectedIndex)
            { 
                case 0:
                    MessageBox.Show("First pivot page is actived");
                    break;
                case 1:
                    MessageBox.Show("Second pivot page is actived");
                    break;
            }
        }
    

    【讨论】:

    • 感谢@Oscar,它比我的解决方案要好,但我仍然需要一个变量来查看它是否是第一次激活该项目。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-25
    相关资源
    最近更新 更多