【发布时间】:2010-09-16 09:18:45
【问题描述】:
我创建了一个忙碌指示器 - 基本上是一个徽标旋转的动画。我已将其添加到登录窗口并将 Visibility 属性绑定到我的视图模型的 BusyIndicatorVisibility 属性。
当我单击登录时,我希望在登录时出现微调器(它调用 Web 服务来确定登录凭据是否正确)。但是,当我将可见性设置为可见,然后继续登录时,直到登录完成,微调器才会出现。在 Winforms 老式编码中,我会添加一个 Application.DoEvents。如何使微调器出现在 MVVM 应用程序的 WPF 中?
代码是:
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 让我对 DoEvents 不寒而栗 ;-)