J'ai un StatusBar
dans ma fenêtre principale, et j'ai aussi une copie d'un UserControl
dans ma fenêtre principale. Depuis les gestionnaires d'événements dans mon UserControl
, je veux mettre à jour le StatusBar
dans la fenêtre principale. Quelle serait la meilleure façon de faire cela? Y at-il un moyen d'accéder à l'instance de ma fenêtre principale de object sender
ou RoutedEventArgs e
dans un gestionnaire d'événements dans UserControl
?WPF, mise à jour de la barre d'état dans la fenêtre principale à partir de UserControl
Edit: grâce à lukas's answer et this tutorial, je suis venu avec la solution suivante:
Ajouté à mes UserControl
:
public delegate void UpdateStatusBarEventHandler(string message);
public event UpdateStatusBarEventHandler UpdateStatusBar;
Ajouté au constructeur de ma fenêtre principale, après InitializeComponent
:
uct_requiredFields.UpdateStatusBar += updateStatusBar;
Et j'ai ajouté cette méthode à ma fenêtre principale:
private void updateStatusBar(string message)
{
sti_mainStatus.Content = message;
}
Puis, à partir de mon UserControl
, je peux faire ce qui suit pour mettre à jour la barre d'état:
if (null != UpdateStatusBar)
{
UpdateStatusBar("woot, message");
}