如何在WPF中从一页导航到另一页

Sim*_*ons 5 c# wpf xaml mvvm

我有一个MainWindow.XAMLCustomersView.XAML

当我单击MainWindow上的Customer Button时,我想导航到CustomersView.XAMLPalong并且需要传递一些参数。

我可以使用,NavigationService但仅适用于Pages,而不能用于Window.Hyperlink目前不可用。

这可能是相当简单的事情,但是不确定如何使用MVVM并在没有任何第三方控件的情况下实现该功能。

小智 5

private void Navigate_Click(object sender, RoutedEventArgs e)//By Prince Jain 
{
   this.NavigationService.Navigate(new Uri("Page3.xaml", UriKind.Relative));
}
Run Code Online (Sandbox Code Playgroud)

  • 我建议您解释一下您的代码示例如何工作并帮助解决问题。 (3认同)

Jaw*_*har 1

在 WPF 中,有许多选项可以从一个窗口导航到另一个窗口。您可以使用框架MainWindow并在框架内导航所有页面。

<Window 
    x:Class="NavigationSample.Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="Window1" Height="300" Width="300">
    <DockPanel>
        <Frame x:Name="_mainFrame" />
    </DockPanel>
</Window>
Run Code Online (Sandbox Code Playgroud)

从代码中,您可以告诉框架进行导航,如下所示:

_mainFrame.Navigate(new Page1());
Run Code Online (Sandbox Code Playgroud)

这恰好是一个有用的捷径:

_mainFrame.NavigationService.Navigate(new Page1());
Run Code Online (Sandbox Code Playgroud)

或者,如果您使用任何框架(如 PRISM),您可以创建一个 Shell,您可以在其中定义区域并让您的页面导航到该区域。

使用 Prism Library 5.0 for WPF 进行导航