0

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

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

<phone:PivotItem GotFocus="Item_GotFocus">
4

2 回答 2

1

将每个命名PivotItem<phone:PivotItem x:Name="Pivot1"/>,然后使用Pivot'sSelectionChanged

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

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

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
    }
}

希望这对编码有所帮助和快乐!

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

于 2013-11-13T20:34:58.937 回答
0

尝试使用 LoadingPivotItem 处理程序

代码片段

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;
        }
    }
于 2013-11-13T20:45:59.533 回答