任务完成后如何在WPF中启用按钮 [英] How to enable button in WPF when task is done
本文介绍了任务完成后如何在WPF中启用按钮的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个按钮,点击它开始一个任务并禁用该按钮,当任务完成时,我想启用这个按钮.请给我任何想法、概念或代码,以便于我理解.
I have a button, click it to start a task and disable the button, when the task is completed, I want to enable this button. Please give me any idea, concept or code to make it easy for me to understand.
我的代码如下:
在 xaml 中:
<Button Name="myButton" Content="START" Click="ButtonStartClick" />
在 xaml.cs 中:
In xaml.cs:
private void ButtonStartClick(object sender, RoutedEventArgs e)
{
RunTask();
myButton.IsEnabled = false;
}
在 viewModel.cs 中:
In viewModel.cs:
private void OnTaskCompleted(string result)
{
//how to enable myButton
}
推荐答案
这是第一个非常幼稚的方法,没有 MVVM
Here is a first very naive approach, without MVVM
private async void ButtonStartClick(object sender, RoutedEventArgs e)
{
myButton.IsEnabled = false;
await RunTask();
myButton.IsEnabled = true;
}
RunTask 声明如下:
where RunTask is declared like this:
private async Task RunTask()
{
// await some other awaitable method(s)
}
如果你有一个不可等待的长时间运行的任务,你可以像这样通过 Task.Run
运行它:
If you have a long running task that isn't awaitable, you may run it by Task.Run
like this:
private async Task RunTask()
{
await Task.Run(() =>
{
// do somthing here
});
}
这篇关于任务完成后如何在WPF中启用按钮的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文