单击按钮列表

时间:2014-03-18 19:54:10

标签: c# xaml visual-studio-2012 windows-phone-8

我正在为当地公共交通用户制作时间表应用程序。我对这整个WP8应用程序构建和xaml等都是全新的,所以 - 令人惊讶的是 - 我有点被困了。所以我构建了主页面,其中包含每行的按钮。 我希望如果用户点击按钮,会出现一个停靠点列表,他可以选择一个,然后应用程序导航到选择停止的计划。 我已经完成了停止页面,我只需要将主页与时间表连接起来 - 上面提到的方式。

所以主要问题是:如何通过按钮单击打开(全屏)列表,然后导航到另一个页面?

The plan

感谢您的帮助:)

1 个答案:

答案 0 :(得分:0)

您需要创建两个页面,一个包含停止列表,另一个包含停止计划。

在ListOfStops页面的XAML文件中,您需要显示所有记录。您可以使用LongListSelector来执行此操作:

<phone:LongListSelector x:Name="stopsLLS" SelectionChanged="stopsLLS_SelectionChanged">
                    <phone:LongListSelector.ItemTemplate>
                        <DataTemplate>
                            <StackPanel>
                                <TextBlock Text="{Binding Name}" />
                            </StackPanel>
                        </DataTemplate>
                    </phone:LongListSelector.ItemTemplate>
</phone:LongListSelector>

长列表选择器的ItemsSource是一个停靠点列表(如果您希望它在源更改时自动更新,请使用ObservableCollection。)

class Stop
{
    public string Name { get; set; }
}

我在导航到Stop的Schedule Page之前设置了选择更改事件进行设置。

    private void stopsLLS_SelectionChanged(object sender, SelectionChangedEventArgs e)
    {
        // If selected item is null (no selection) do nothing
        if (stopsLLS.SelectedItem == null)
            return;

        // Save Selected Item
        PhoneApplicationService.Current.State["SelectedStop"] = stopsLLS.SelectedItem as Stop;

        // Navigate to the new page
        NavigationService.Navigate(new Uri("/Views/StopSchedulePage.xaml", UriKind.Relative));

        // Reset selected item to null (no selection)
        reportsLLS.SelectedItem = null;
    }

在StopSchedulePage中,您可以通过以下方式检索“停止”:

            object o;
            if (PhoneApplicationService.Current.State.TryGetValue("SelectedStop", out o))
            {
                var stop = (Stop)o;
            }

您可以随意显示