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

本文关键字:可见性 活动 组件 回调 设置 | 更新日期: 2023-09-27 18:03:31

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

回调是这样的:

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

第一行被执行,但是GUI中关于第二行和第三行没有改变。我试图通过调用CommandManager来强制执行Requery,但是没有帮助。

知道为什么它不工作吗?

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

试试这个:

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