在回调中设置组件的可见性和 activity

Setting visibility and activity of a component in a callback

我有一个 WPF 程序,其中包含在异步方法之后执行的回调。

回调看起来像这样:

public void ProcessCompleteCallback()
{
    MessageBox.Show("Process completed.");
    GenerateOutputButton.IsEnabled = true;
    LoadingGifImage.Visibility = Visibility.Hidden;
    CommandManager.InvalidateRequerySuggested();
}

第一行得到执行,但是关于第二行和第三行的 GUI 没有变化。 我试图通过调用 CommandManager 来强制重新查询,但它没有帮助。

知道为什么它不起作用吗?

试试这个:

public void ProcessCompleteCallback()
{
    MessageBox.Show("Process completed.");
    Application.Current.Dispatcher.Invoke(() => 
    {
        GenerateOutputButton.IsEnabled = true;
        LoadingGifImage.Visibility = Visibility.Hidden;
        CommandManager.InvalidateRequerySuggested();
    });
}