全景控制在导航时不记得所选的全景项目

时间:2014-10-03 13:02:14

标签: windows-phone-8 mvvm binding savestate panorama-control

我在我的wp8应用程序中使用全景控件,该应用程序由4个全景项目组成。这些项目都是我单独的文件。项目中的内容绑定到视图模型(使用MVVM Cross)。

问题是,当我从全景图项目导航到新页面并返回时,全景图控件会显示第一个全景图项目(它有点重置)。

我尝试使用全景控件上的OnNavigatedTo覆盖selectedIndex,但它只返回-1

包含panorama-control的xaml类:

<Grid x:Name="LayoutRoot" Background="Transparent">
    <!--Panorama Control-->
    <!--Cannot bind directly to background with ImageBrush, using converter instead-->
    <controls:Panorama  x:Name="panorama"
                       Background="{Binding Home.WindowsBackgroundUrl, Converter={StaticResource ImageBrushConverter}}">

        <controls:Panorama.Title>
           <StackPanel Orientation="Vertical" Margin="0,60,0,0">
                <Image x:Name="Icon" Source="/Images/PanoramaLogo.png" />
            </StackPanel>
        </controls:Panorama.Title>

        <!--Panorama items-->
        <ScrollViewer>
            <local:InterestView x:Name="Interest" Margin="0,-20,0,0" />
        </ScrollViewer>

        <ScrollViewer>
            <local:CustomerCategoryPanoramaItem x:Name="Customer" Margin="0,-20,0,0"/>
        </ScrollViewer>

        <ScrollViewer>
            <local:MapListView x:Name="MapList" Margin="0,-20,0,0"/>
        </ScrollViewer>

        <ScrollViewer>
            <local:ContactMeView Margin="0,-20,0,0"/>
        </ScrollViewer>
    </controls:Panorama>
</Grid>

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

如果您将视频堆栈中的屏幕保持不变,那么全景控制将照顾到其他副本,我们必须在我们向前导航时以及当我们返回Panorama控制时保留所选全景图。为此,我们必须设置其DefaultItem属性。 全景编号从0开始为视图编号,如果我们有三个全景项目,则会将0分为第一个,第1个到第二个,第2个到第3个。

示例:

PanoramaControl.DefaultItem = PanoramaControl.Items[0 to 2];