[WPF] Passer des arguments à une page ou window

Publié le 23 octobre 2008 par Jeremy.jeanson

Lorsque l'on découvre WPF on fini très rapidement par ce poser des questions qui n'en sont pas. Par exemple: comment passager des questions arguments à une page ou une window?

Il est vrai que la découverte de la syntaxe suivante a de quoi surprendre:

NavigationService ns = NavigationService.GetNavigationService(this);

ns.Navigate(new System.Uri("Page1.xaml", UriKind.Relative);

// ou

ns.Navigate(new Page1());

Mais comme toujours on oublie que l'on a affaire a des objets. Rien ne nous empêche donc de créer des surcharges du constructeur comme en WinForm.

On peut donc écrire:

ns.Navigate(new Page1.xaml("riri","fifi","loulou"));

// avec le constructeur suivant pour Page1

public Page1(string arg1, string arg2, string arg3)
{
    // on mémorise les arguments
}

Pour une Window le code est donc identique, hors mis l'utilisation de la méthode Show en lieu et place du service de navigation.

Facile non? Pourtant le web regorge de personne qui posent cette question.