我有一个WPF应用程序,它只包含一个Button和一个Textbox来显示一些输出.当用户单击Button时,会启动一个禁用Button的线程,将东西打印到输出Textbox,然后线程停止(此时我想再次启用Button).
该应用程序似乎正确禁用按钮,以及正确更新文本框.但是,当线程完成时,它总是无法正确地重新启用Button!谁能告诉我我做错了什么?
这是我的xaml的片段:
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Button Grid.Row="0" HorizontalAlignment="Center" Command="{Binding ExecuteCommand}">E_xecute</Button>
<Label Grid.Row="1" Content="Output Window:" HorizontalAlignment="Left"/>
<TextBlock Grid.Row="2" Text="{Binding Output}"/>
</Grid>
Run Code Online (Sandbox Code Playgroud)
这是我的ViewModel代码(我正在使用Josh Smith的MVVM设计):
public class WindowViewModel : ViewModelBase
{
private bool _threadStopped;
private RelayCommand _executeCommand;
private string _output;
public WindowViewModel()
{
_threadStopped = true;
}
public string Output { get { return _output; } set { _output = value; OnPropertyChanged("Output"); } }
public ICommand ExecuteCommand
{
get
{
if (_executeCommand == null)
{
_executeCommand …Run Code Online (Sandbox Code Playgroud)