Tengo un StatusBar
en mi ventana principal, y también tengo una copia de UserControl
en la ventana principal. Desde dentro de los controladores de eventos en mi UserControl
, quiero actualizar el StatusBar
en la ventana principal. ¿Cuál sería la mejor manera de hacer esto? ¿Hay alguna forma de obtener acceso a la instancia de mi ventana principal desde object sender
o RoutedEventArgs e
en un controlador de eventos en UserControl
?WPF, actualizando la barra de estado en la ventana principal desde UserControl
Editar: gracias a lukas's answer y this tutorial, me ocurrió con la siguiente solución:
añadido a mis UserControl
:
public delegate void UpdateStatusBarEventHandler(string message);
public event UpdateStatusBarEventHandler UpdateStatusBar;
Añadido al constructor de la ventana principal, después de InitializeComponent
:
uct_requiredFields.UpdateStatusBar += updateStatusBar;
Y agregué este método a mi ventana principal:
private void updateStatusBar(string message)
{
sti_mainStatus.Content = message;
}
Entonces, desde dentro de mi UserControl
, yo puedo hacer lo siguiente para actualizar la barra de estado:
if (null != UpdateStatusBar)
{
UpdateStatusBar("woot, message");
}