私は小さなWPFアプリケーションを持っています。このアプリケーションには、クリックするとテキストが変更され無効にされるべきボタンがあります。ボタンイベントハンドラのコードは、次のとおりです。ボタン状態が更新されない
/// <summary>
/// 'Read' button clicked
/// </summary>
/// <param name="sender"></param>
/// <param name="routedEventArgs"></param>
private void ReadVersionNumber(object sender, RoutedEventArgs routedEventArgs)
{
Read.Content = "Reading....";
Read.IsEnabled = false;
SerialPort p = new SerialPort();
string response = "Could not read version";
try
{
// Do some stuff
}
catch (Exception)
{
response = "There was an error while reading the version number";
}
finally
{
Read.IsEnabled = true;
Read.Content = "Read";
if(p.IsOpen)
{
p.Close();
}
}
Version.Text = response;
}
ボタンのテキストは変更されず、無効になることはありません。 Iveは、ボタンのプロパティを設定した後でUpdateLayoutを呼び出そうとしましたが、それでも変更はありません。メソッドを実行している間、ボタンはロックされ、メソッドの最後にレイアウトを更新するだけです。レイアウトを更新するために何をする必要がありますか?