Современный интерфейс для WPF-навигации

Как я могу передать параметр между страницами? Я пытался добавить параметры в страницу URI, но это не сработало, потому что я не могу использовать событие onNavigatedTo в пользовательском элементе управления. Пожалуйста помоги

2 ответа

Вы должны использовать OnFragmentNavigation.

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

e.Fragement содержит все, что за # в URI. Например, используя

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

e.Fragment будет "CustomerID=12345"

Похоже, вы пришли из браузера клиента, показывающего мир веб-страниц. С WPF у вас есть приложение! Вы можете просто установить значение на новой странице до или после навигации, передать его конструктору или получить доступ к нему из местоположения, доступного с обеих страниц. Похоже, что параметр является аргументом страницы, поэтому в этом случае я бы передал его конструктору:

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

    public APage
    {
        InitializeComponent();
    }

    public APage(object arg) : this()
    { 
        this.myVar = args;
    }
}
Другие вопросы по тегам