这种情况是使用C#WPF。我想在单击按钮后立即禁用它,以防止短时间内连续单击两次。我禁用了OnClick_Event中的按钮,但仍可单击。

部分来源如下。

private void Button_Click_UpdateBurndownChart(object sender, RoutedEventArgs e)
{
   if(threadNotWorking)
   {
      updateButton.IsEnabled = false;
      startWorkThread();
   }
}

private void startWorkThread()
{
     ... ...
    //after finish required process
    updateButton.IsEnabled = true;
}


有什么办法可以做到这一点?

最佳答案

您可能要使用调度程序,可能存在线程问题(回调函数在单独的线程上运行并尝试访问在另一个线程上运行的ui)。尝试这个 。 。

updateButton.Dispatcher.BeginInvoke(
    new ThreadStart(() => updateButton.IsEnabled = false),
    System.Windows.Threading.DispatcherPriority.Input, null);


代替

updateButton.IsEnabled = false;

10-06 10:32