Modern UI for WPF- navigation

2019-03-03 14:12发布

How can I pass parameter beetwen pages? I've tried to add parameters to page uri but it didn't work because I can't use onNavigatedTo event on user control. Please help

2条回答
The star\"
2楼-- · 2019-03-03 14:20

You must use OnFragmentNavigation.

public void OnFragmentNavigation(FragmentNavigationEventArgs e)
{
  DoYourStuff(e.Fragment)
}

e.Fragement contains everything past the # in the URI. In example, using

NavigationCommands.GoToPage.Execute("/Pages/CustomerPage.xaml#CustomerID=12345", this);

e.Fragment will be "CustomerID=12345"

查看更多
贪生不怕死
3楼-- · 2019-03-03 14:20

It looks like you are coming from a client browser showing web pages world. With WPF you own the app! you can simply set the value on the new page before or after navigating, pass it in with a constructor or access it from a location accessible from both pages. It sounds like the parameter is an argument to the page so I would pass it in with a constructor in this case:

public class APage : Page
{
    private object myVar; // use whatever Type you want

    public APage
    {
        InitializeComponent();
    }

    public APage(object arg) : this()
    { 
        this.myVar = args;
    }
}
查看更多
登录 后发表回答