У меня есть приложение WPF, в котором я хочу показать или скрыть текст при нажатии кнопки. Проблема в том, что когда кнопка нажимается со второго раза, текст никогда не отображается. Пожалуйста помоги. Вот мой xaml
<Button
Grid.Column = "1"
x:Name = "btnUpdateGrid"
Margin = "{StaticResource AllControlsMargin}"
Content = "{StaticResource UpdateGrid}" Click = "btnUpdateGrid_Click"></Button>
<TextBlock x:Name = "tblWait" Grid.Column = "2" Visibility = "Hidden"
Text = "{StaticResource UpdatingImages}" FontWeight = "Bold" VerticalAlignment = "Center"></TextBlock>
При нажатии кнопки я говорю следующее. Для выполнения метода UpdatePlate2DView требуется время. И это не многопоточность.
private void btnUpdateGrid_Click(object sender, RoutedEventArgs e)
{
tblWait.Visibility = Visibility.Visible;
UpdatePlate2DView();
tblWait.Visibility = Visibility.Hidden;
}
Если бы это был я, я бы просто добавил BooleanToVisibilityConverter (или обратный преобразователь в зависимости от необходимости), заменил Button на ToggleButton, убрал событие Click там и просто сделал <TextBlock Text = "Peek-A-Boo!" Visibility = "{Binding Path=IsChecked, ElementName=btnUpdateGrid, Converter = {StaticResource=BoolConverterKeyName}"/> и покончил с этим ...
Конечно, Крис, хорошая идея, позволь мне попробовать вот так





Ваша функция «UpdatePlate2DView ()» может выполнять некоторую занятую обработку пользовательского интерфейса. Поэтому перед вызовом этой функции вызовите «System.Windows.Forms.Application.DoEvents ()», чтобы заставить приложение обрабатывать любые ожидающие сообщения пользовательского интерфейса.
Почему вы не используете
asyncи визуальные состояния?