2017-06-14 78 views
4

我有一个只有一个透视的页面。此页面始终缓存。现在,无论何时导航到此页面,我都希望从缓存中加载其内容和选择,但我希望能够看到第一个PivotItem。 XAML:在UWP中使用Pivot的SelectedIndex属性

<Pivot x:Name="FilterPivot" 
     IsHeaderItemsCarouselEnabled="True" 
     SelectedIndex="0"> 

    <PivotItem Header="Author" >    

     <ListBox ItemsSource="{x:Bind AuthorFacets, Mode=OneWay}" 
        Name="AuthorListBox"       
        SelectionMode="Multiple" 
        SelectionChanged="AuthorListBox_SelectionChanged"> 

      <ListBox.ItemContainerStyle> 
       <Style TargetType="ListBoxItem"> 
        <Setter Property="HorizontalContentAlignment" Value="Stretch" /> 
       </Style> 
      </ListBox.ItemContainerStyle> 


      <ListBox.ItemTemplate> 
       <DataTemplate x:DataType="local:IFacet"> 
        <Grid> 
         <Grid.ColumnDefinitions> 
          <ColumnDefinition Width="*"></ColumnDefinition> 
          <ColumnDefinition Width="Auto"></ColumnDefinition> 
         </Grid.ColumnDefinitions> 

         <TextBlock Grid.Column="0" 
             Text="{x:Bind read}" 
             TextWrapping="Wrap" 
             HorizontalAlignment="Left" 
             VerticalAlignment="Center"/> 

         <Border Grid.Column="1" 
            Background="Gray" 
            MinWidth="25" 
            CornerRadius="8"> 
          <TextBlock Text="{x:Bind num}" 
              HorizontalAlignment="Center" 
              VerticalAlignment="Center" 
              Padding="2"/> 
         </Border> 

        </Grid> 
       </DataTemplate> 
      </ListBox.ItemTemplate> 
     </ListBox> 

    </PivotItem> 


    <PivotItem Header="Language"> 

     .... 
     .... 

    </PivotItem> 

    <PivotItem Header="Learning Resource Type"> 

     .... 
     .... 

    </PivotItem> 



    <PivotItem Header="Subject"> 

     .... 
     .... 

    </PivotItem> 

    <PivotItem Header="Type"> 

     .... 
     .... 

    </PivotItem> 

    <PivotItem Header="Education Level"> 

     .... 
     .... 

    </PivotItem> 

    <PivotItem Header="Source"> 

     .... 
     .... 

    </PivotItem> 

</Pivot> 

这背后是我的代码:

public FilterPage() 
{ 
    this.InitializeComponent(); 
    this.NavigationCacheMode = NavigationCacheMode.Required; 
} 

protected override void OnNavigatedTo(NavigationEventArgs e) 
{ 
    base.OnNavigatedTo(e); 
    FilterPivot.SelectedIndex = 0; 
} 

这不选择零指数,相反,它显示了缓存PivotItem当用户导航远离视图是被选中。

回答

4

OnNavigatedTo将被调用Pivot控制甚至装,所以设置SelectedIndex不会影响其选择。

简单的解决方法是订阅Loaded事件,然后从那里设置它。

只是做内以下的MainPage的构造 -

FilterPivot.Loaded += (s, e) => FilterPivot.SelectedIndex = 0; 
相关问题