放置在AppBar中后退按钮不起作用

时间:2014-09-25 09:47:48

标签: windows-runtime windows-8.1

我正在使用Windows 8.1应用。我在项目中添加了一个基本页面,它会自动添加一个后退按钮:

<Button x:Name="backButton"
        Margin="39,59,39,20"
        Command="{Binding NavigationHelper.GoBackCommand, ElementName=pageRoot}"
        Style="{StaticResource NavigationBackButtonNormalStyle}"
        VerticalAlignment="Top" />

按钮工作正常。但是,当我将此按钮移动到AppBar时,它不起作用。该视图不会返回上一页 后一种情况出了什么问题?

1 个答案:

答案 0 :(得分:1)

AppBar与页面不在同一名称空间中,因此命令绑定到页面的NavigationHelper属性无法解析。 AppBar与页面的任何绑定都是这种情况。

您可以通过将AppBar的DataContext设置为page中的页面来解决此问题。已加载

XAML

<Page.BottomAppBar>
    <AppBar x:Name="bottomAppBar" IsOpen="True">
        <Button x:Name="backButton"
            Margin="39,59,39,20"
            Command="{Binding NavigationHelper.GoBackCommand}"
            Style="{StaticResource NavigationBackButtonNormalStyle}"
            VerticalAlignment="Top" />
    </AppBar>
</Page.BottomAppBar>

C#

public BasicPage1()
{
    this.InitializeComponent();
    this.navigationHelper = new NavigationHelper(this);
    this.navigationHelper.LoadState += navigationHelper_LoadState;
    this.navigationHelper.SaveState += navigationHelper_SaveState;

    this.Loaded += BasicPage1_Loaded;
}

async void BasicPage1_Loaded(object sender, RoutedEventArgs e)
{
    bottomAppBar.DataContext = this;
}

- 罗布