【发布时间】:2016-07-19 03:26:06
【问题描述】:
我正在开发一个基于XAMLNavigation sample 的简单应用程序。我已经修改了AppShell.xaml 文件,以便单击设置按钮将用户导航到设置页面。
<Button x:Name="SettingsNavPaneButton"
Grid.Row="2"
Grid.Column="2"
Style="{StaticResource SplitViewPaneButtonStyle}"
Content=""
Click="SettingsNavPaneButton_Clicked"
AutomationProperties.Name="Settings"
ToolTipService.ToolTip="Settings"/>
以下是设置页面的内容:
<Page
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:SettlerBalancer.Views"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d">
<Grid Height="200" Width="Auto" Background="{ThemeResource ApplicationPageBackgroundThemeBrush}" Margin="24,0,0,0" HorizontalAlignment="Center" VerticalAlignment="Center">
<Grid.RowDefinitions>
<RowDefinition Height="1*"/>
<RowDefinition Height="1*"/>
<RowDefinition Height="1*"/>
</Grid.RowDefinitions>
<CheckBox x:Name="tileBalance" Grid.Row="0" Content="Text Tile" HorizontalAlignment="Left" Margin="0,0,0,-28.8" Grid.RowSpan="3" VerticalAlignment="Top" IsChecked="True" Click="tileBalance_Click"/>
<CheckBox x:Name="portBalance" Grid.Row="1" Content="Text port" HorizontalAlignment="Left" Margin="0,0,0,-28.8" Grid.RowSpan="3" VerticalAlignment="Top" IsChecked="True" Click="portBalance_Click"/>
</Grid>
在此页面中,我有 2 个复选框,它们是我要传递给 BasicPage 或 LandingPage 的参数。
据我了解,您可以通过重写 OnNavigation 方法在页面之间传递参数,如this question 所示。这意味着在 SettingPage.xaml.cs 中,我必须像这样传递参数:
Frame.Navigate(typeof(BasicPage), parameters);
Frame.Navigate(typeof(LandingPage), parameters);
但是,在我的例子中,BasicPage 和 LandingPage 实际上不是页面,而是拆分视图面板中的框架,它们只能通过NavigationListView 访问。虽然 SettingPage 是 splitview 的一部分,但它不是 NavigationListView 的一部分。因此,在 SettingPage 中,我不知道用户在使用 NavigationListView 进行导航时将前往哪个页面(BasicPage 或 LandingPage)。
【问题讨论】: