在Windows Phone 8中更改滑动时更改详细信息页面数据

时间:2014-04-08 12:52:48

标签: windows-phone-8

使用MVVM框架测试Windows Phone 8应用程序。

ListPage.xaml:

<phone:PanoramaItem x:Name="mpnP"  Width="475">
    <Grid Style="{StaticResource GridPanoPage}" >
         <ListBox x:Name="pkList" Style="{StaticResource ListBoxHeadlines}" >
            <ListBox.ItemTemplate>
                <DataTemplate >
                    <ListBoxItem Style="{StaticResource ListBoxItemHub}">
                        <StackPanel Orientation="Horizontal">
                            <Image x:Name="pkImage" Source="{Binding ImagePath}" />
                            <StackPanel>
                                <TextBlock x:Name="pkHead" Text="{Binding Head}"/>
                             </StackPanel>
                        </StackPanel>
                    </ListBoxItem>
                </DataTemplate>
            </ListBox.ItemTemplate>
        </ListBox>
     </Grid>
</phone:PanoramaItem>

在列表框选择更改后,根据ID-

导航到详细信息页面
if (!string.IsNullOrEmpty(Session.ID))
NavigationService.Navigate(new Uri("/Views/Detail.xaml", UriKind.Relative));

现在我想在滑动屏幕上导航到下一个ID。意思是 - 如果ID-3当前在屏幕上并且如果用户滑动屏幕,则屏幕上将显示下一个ID细节。 这个过程一直持续到列表框最后一个id。

1 个答案:

答案 0 :(得分:0)

在详细信息页面上,可以借助FlipView在多个项目之间导航。每次发生事件SelectionChange时,都会更改ViewModel中的Id。

<toolkit:FlipView x:Name="FlipViewImages" ItemsSource="{Binding Images}" >
            <toolkit:FlipView.ItemTemplate>
                <DataTemplate>
                    <utils:ImageZoomControl Url="{Binding}"/>
                </DataTemplate>
            </toolkit:FlipView.ItemTemplate>
            <toolkit:FlipView.ItemsPanel>
                <ItemsPanelTemplate>
                    <VirtualizingStackPanel Orientation="Horizontal"/>
                </ItemsPanelTemplate>
            </toolkit:FlipView.ItemsPanel>
        </toolkit:FlipView>

FlipView不是本机控件,您必须通过nuget Manager,Windows Phone ToolKit导入。 如果您的项目源是对象列表,则不需要执行任何其他操作。