Search code examples
c#silverlighteventswindows-phone-8pivotitem

pivot page in windows phone 8 LoadedPivot event not firing?


i just started with generic forms for windows phone 8 development. No i want to test if a certain pivotitem is selected, then it should fire a function to load a grid into that pivot item.

here is my xaml and my code so far XAML:

 <phone:Pivot Name="mainpivot" Title="MY APPLICATION" LoadingPivotItem="mainpivot_LoadingPivotItem" LoadedPivotItem="mainpivot_LoadedPivotItem_1">
        <!--Pivot item one-->
        <phone:PivotItem Name="staticpivot" Header="static">
            <!--Double line list with text wrapping-->
            <Grid Name="staticGrid" >
                <Grid.ColumnDefinitions>
                    <ColumnDefinition Width="*"/>
                    <ColumnDefinition Width="*"/>
                </Grid.ColumnDefinitions>
                <Grid.RowDefinitions>
                    <RowDefinition Height="*"/>
                    <RowDefinition Height="*"/>
                    <RowDefinition Height="*"/>
                    <RowDefinition Height="*"/>



                </Grid.RowDefinitions>

                <TextBox Name="txtUsername" Grid.Column="1" Height="70"></TextBox>
                <TextBox Name="txtPassword" Grid.Row="1" Height="70" Grid.Column="1"></TextBox>
                <TextBox Name="txtdescription" Grid.Row="2" Height="150"  Grid.Column="1" TextWrapping="Wrap"></TextBox>


                <TextBlock Height="40" Text="USERNAME" HorizontalAlignment="Center"></TextBlock>
                <TextBlock Height="40" Text="PASSWORD" HorizontalAlignment="Center" Grid.Row="1"></TextBlock>
                <TextBlock Height="40" Text="DESCRIPTION" HorizontalAlignment="Center" Grid.Row="2"></TextBlock>

                <Button Grid.Row="4" Grid.ColumnSpan="2" Tap="Button_Tap">SAVE DATA</Button>
            </Grid>
        </phone:PivotItem>

        <!--Pivot item two-->
        <phone:PivotItem x:Name="genericpivot" Header="generic">
            <!--Double line list no text wrapping-->
        </phone:PivotItem>
    </phone:Pivot>

as you can see the 2nd pivot has nothing in it, i am going to populate it dynamically with controls.

the problem is here in the code :

        private void mainpivot_LoadedPivotItem_1(object sender, PivotItemEventArgs e)
    {
        if (e.Item.Name == "genericpivot")
        {
            loadDetailForPivot();
        }
    }

this function does not fire when i debug and put a breakpoint there. can anyone tell my why? or give a link that explains it.

regards


Solution

  • To clarify, are you trying to populate the selected pivot item once it's selected?

    I believe what you are after is picking up a change to the pivot controls selectedindex, such as (VB.net, sorry):

      Private Sub PivotItem_SelectionChanged(sender As Object, e As SelectionChangedEventArgs) Handles PivotItem.SelectionChanged
           If PivotItem.SelectedIndex = 1 Then LoadDetailForPivot
    End Sub
    

    However...why do you not load the controls beforehand? Wouldn't that be quicker (i.e. no delay while things are loaded as the user pivots). I did this on a previous app and the pivoting was jerky as a result.