1

我正在使用 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;
}

在按钮旁边,我有一个圆圈,与枚举 StatusTest 链接,它改变了你的填充状态变化。目前它只显示最终状态(正常或错误),从不处理。如何在验证过程中通过颜色处理填充圆圈?

4

1 回答 1

3

看来您的所有工作都在 UI 线程上,因此第一个状态设置器不会生效。将您的代码更改为下面以让 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;
}
于 2013-08-05T18:51:30.537 回答