He creado un indicador de ocupado, básicamente una animación de un logotipo girando. Lo agregué a una ventana de inicio de sesión y vinculé la propiedad Visibilidad a la propiedad BusyIndicatorVisibility de mi viewmodel.¿Cómo puedo forzar la visualización de mi indicador de ocupado? (WPF)
Cuando hago clic en Iniciar sesión, quiero que aparezca la flecha giratoria mientras se produce el inicio de sesión (llama a un servicio web para determinar si las credenciales de inicio de sesión son correctas). Sin embargo, cuando configuro la visibilidad como visible, continúo con el inicio de sesión, la ruleta no aparece hasta que se completa el inicio de sesión. En la codificación antigua de Winforms, habría agregado una Application.DoEvents. ¿Cómo puedo hacer que el spinner aparezca en WPF en una aplicación MVVM?
El código es:
private bool Login()
{
BusyIndicatorVisibility = Visibility.Visible;
var result = false;
var status = GetConnectionGenerator().Connect(_model);
if (status == ConnectionStatus.Successful)
{
result = true;
}
else if (status == ConnectionStatus.LoginFailure)
{
ShowError("Login Failed");
Password = "";
}
else
{
ShowError("Unknown User");
}
BusyIndicatorVisibility = Visibility.Collapsed;
return result;
}
+1 por hacerme estremecer con un DoEvents ;-) – Stimul8d