2013-11-13 5 views
0

Я хочу загрузить некоторые данные, но в первый раз пользователь просматривает PivotItem. Как узнать, что пользователь впервые пользуется особым товаром? ...Как узнать, что в первый раз Pivot Item получил фокус?

Я могу использовать событие GotFocus и использовать переменную типа IsLoaded = false, но это не выглядит красиво.

<phone:PivotItem GotFocus="Item_GotFocus"> 

ответ

1

Имя каждого PivotItem, такие как <phone:PivotItem x:Name="Pivot1"/>, а затем использовать Pivot «s SelectionChanged

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

Надеется, что это помогает и счастливым кодированию!

Редактировать: Добавлен раздел для проверки в первый раз.

+0

благодаря @NateDiamond. Я проверил, но все-таки мне нужна переменная, чтобы проверить, является ли это первым, когда элемент активирован. – user2970840

+0

Отредактировано, чтобы добавить чек для этого –

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; 
     } 
    } 
+0

спасибо @Oscar, это лучше, чем мое решение, но все же мне нужна переменная, чтобы увидеть если это первый раз, когда элемент активирован. – user2970840

Смежные вопросы