Ich habe eine StatusBar
in meinem Hauptfenster, und ich habe auch eine Kopie von UserControl
in meinem Hauptfenster. Von Eventmanagern in meinem UserControl
möchte ich das StatusBar
im Hauptfenster aktualisieren. Was wäre der beste Weg, dies zu tun? Gibt es eine Möglichkeit, Zugriff auf die Instanz meines Hauptfensters von object sender
oder RoutedEventArgs e
in einem Ereignishandler in UserControl
zu erhalten?WPF, Update Statusleiste im Hauptfenster aus UserControl
Edit: dank lukas's answer und this tutorial, kam ich auf die folgende Lösung:
Hinzu meine UserControl
:
public delegate void UpdateStatusBarEventHandler(string message);
public event UpdateStatusBarEventHandler UpdateStatusBar;
hinzugefügt mein Haupt Konstrukteurs-Fenster, nachdem InitializeComponent
:
uct_requiredFields.UpdateStatusBar += updateStatusBar;
Und ich habe diese Methode hinzugefügt Zu meinen Hauptfenster:
private void updateStatusBar(string message)
{
sti_mainStatus.Content = message;
}
Dann aus meinem UserControl
, kann ich folgendes aktualisieren, um die Statusleiste tun:
if (null != UpdateStatusBar)
{
UpdateStatusBar("woot, message");
}