我正在使用WPF MVVM中由枚举状态发出信号的验证。单击按钮即可触发验证。 这是命令的枚举和代码:
public enum StatusTest {None, Ok, Error, Processing }
public ICommand TestConnectionCommand
{
get
{
if (_testConnectionCommand == null)
_testConnectionCommand = new RelayCommand(
() => this.Test());
return _testConnectionCommand;
}
}
void Test()
{
Status = StatusTest.Processing;
if ( ValidationMethod()) Status = StatusTest.Ok;
else Status = StatusTest.Error;
}
在按钮旁边,我有一个圆圈,与enum StatusTest链接,该状态更改了状态更改。 目前它只显示最终状态(ok或错误),从不处理。如何在验证过程中通过颜色处理填充圆圈?
答案 0 :(得分:3)
看来您的所有工作都在UI线程上,因此第一个Status的setter不会生效。将代码更改为以下,让Test()在不同的线程上工作。
public enum StatusTest {None, Ok, Error, Processing }
public ICommand TestConnectionCommand
{
get
{
if (_testConnectionCommand == null)
_testConnectionCommand = new RelayCommand(
() => ThreadPool.QueueUserWorkItem(Test));
return _testConnectionCommand;
}
}
void Test(object state)
{
Status = StatusTest.Processing;
if ( ValidationMethod()) Status = StatusTest.Ok;
else Status = StatusTest.Error;
}