0

我在我的应用程序中打开了一个新页面。

XAML

        <MenuItem Header="Admin" IsTabStop="False">
            <MenuItem x:Name="mi_ManageUsers" Header="Manage Users" Click="mi_ManageUsers_Click"/>
        </MenuItem>

C#

    private void mi_ManageUsers_Click(object sender, RoutedEventArgs e)
    {
        ManageUsers newPage = new ManageUsers();
        this.Content = newPage;
    }

现在我的新页面中有一个按钮

XAML

<Page x:Class="Billing.ManageUsers"
      xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
      xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
      xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
      mc:Ignorable="d" 
      d:DesignHeight="300" d:DesignWidth="300"
    Title="ManageUsers">

    <Grid>
        <Button x:Name="btnClose" Content="Close" HorizontalAlignment="Left" Margin="185,219,0,0" VerticalAlignment="Top" Width="75" Click="btnClose_Click"/>

    </Grid>
</Page>

C#

    private void btnClose_Click(object sender, RoutedEventArgs e)
    {
        //OnReturn(new ReturnEventArgs<string>(this.dataItem1TextBox.Text));
        this.NavigationService.GoBack();
    }

但是代码不起作用。我需要关闭这个新页面或通过单击按钮返回上一个窗口

4

2 回答 2

1

正如我在评论中提到的那样,当您这样做时,this.Content = newPage;您实际上并没有导航到该页面,而是更改Content了当前页面的。当我尝试你的代码时,我正在InvalidOperationException上线this.NavigationService.GoBack();

要使其正常工作,请将mi_ManageUsers_Click方法中的代码更改为:

NavigationService.Navigate(new ManageUsers());

我已经测试了这段代码并且可以工作。希望这可以帮助。

于 2013-10-30T12:46:40.800 回答
0

我一直在努力解决这个问题,但我终于找到了答案......要从您打开的页面中关闭页面,请使用:

 NavigationService.Navigate(null);
于 2020-07-22T16:02:09.623 回答