我正在为当地公共交通用户制作时间表应用程序。我对这整个WP8应用程序构建和xaml等都是全新的,所以 - 令人惊讶的是 - 我有点被困了。所以我构建了主页面,其中包含每行的按钮。 我希望如果用户点击按钮,会出现一个停靠点列表,他可以选择一个,然后应用程序导航到选择停止的计划。 我已经完成了停止页面,我只需要将主页与时间表连接起来 - 上面提到的方式。
所以主要问题是:如何通过按钮单击打开(全屏)列表,然后导航到另一个页面?
感谢您的帮助:)
答案 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;
}
您可以随意显示