[Windows Phone]Pivot 切換Page所觸發之事件。
小編在寫Pivot這容器時,曾遇到切換page,而前一個page所使用的Timer卻還在執行,影響到其他的page。
這時就需要請「PivotSelectionChanged」來幫忙了。
1.先建立一個Pivot的APP。
其容器有2個「textblock」及2個「button」。
1: <Grid x:Name="LayoutRoot" Background="Transparent">
2:
3: <!--樞紐分析控制項-->
4: <phone:Pivot Title="我的應用程式">
5: <!--樞紐分析項目 1-->
6: <phone:PivotItem Header="first">
7: <StackPanel Orientation="Vertical">
8: <TextBlock Name="tbl_1" Text="0" FontSize="50" Height="80" HorizontalAlignment="Center" />
9: <Button Content="ADD" Click="Button_Click"/>
10: </StackPanel>
11: </phone:PivotItem>
12:
13: <!--樞紐分析項目 2-->
14: <phone:PivotItem Header="second">
15: <StackPanel Orientation="Vertical">
16: <TextBlock Name="tbl_2" Text="0" FontSize="50" Height="80" HorizontalAlignment="Center" />
17: <Button Content="ADD" Click="Button_2_Click"/>
18: </StackPanel>
19: </phone:PivotItem>
20: </phone:Pivot>
21:
22: </Grid>
2.之後在「button」裡打入code
1: private void Button_Click(object sender, RoutedEventArgs e)
2: {
3: int x = int.Parse(tbl_1.Text);
4: tbl_1.Text = (x + 1).ToString();
5: }
6:
7: private void Button_2_Click(object sender, RoutedEventArgs e)
8: {
9: int x = int.Parse(tbl_2.Text);
10: tbl_2.Text = (x + 1).ToString();
11: }
3.接下來按下執行後,應該是每個page的textblock跟button所計算的值是分開的。
4.之後要改寫成,切換到「page 1」時,「page 2」的值是「100」;切換到「page 2」時,「page 1」的值清除。
回到「MainPage.xaml」加上「selectionchanged」,讓他自己新增。
1: <phone:Pivot SelectionChanged="Pivot_SelectionChanged" Title="我的應用程式">
5.到「Pivot_SelectionChanged」打入
1: private void Pivot_SelectionChanged(object sender, SelectionChangedEventArgs e)
2: {
3: if (((Pivot)sender).SelectedIndex == 0)
4: {
5: tbl_2.Text = (100).ToString();
6: }
7: else
8: {
9: tbl_1.Text = "0";
10: }
11: }
(Pivot)sender是將sender轉型成Pivot,然後取「selectedindex」,判斷目前的page的值是多少。
page的起始從「0」開始。
(結果)
當按到「5」時
之後切換到「page 2」
再切回「page 1」
Reference
Pivot-Page SelectionChanged doesn't react
若有觀念錯誤、內容錯誤,勞請告知。 謝謝。
若要轉載請註明出處,謝謝。