2014-10-09 3 views
1


Я пытаюсь создать приложение калькулятора на WP 8.1. Я хотел бы создать кнопку автоматизации, которая выполняет автоматизацию, нажимать на другие кнопки моего приложения. Например, в этом коде, когда я нажимаю кнопку автоматизации, он будет вызывать событие нажатия других кнопок, таких как:Как быстро обновлять пользовательский интерфейс в приложениях Windows Phone

private void Auto_Click(object sender, RoutedEventArgs e) 
{ 
    button3_Click(this, null); 
    button_addition_Click(this, null); 
    button7_Click(this, null); 
    button_result_Click(this, null); 
} 

Я этот пример, я выполняю операции является «3 + 7», после чего Я нажимаю кнопку «Равно».
Созданный результат является правильным. Но у меня есть 1 проблема, то есть отображение данных в текстовом поле не изменяется в этом методе. Но когда я нажимаю кнопку 3 самостоятельно, отображение данных текстового поля мгновенно менялось. Код события button3_Click является:

private void button3_Click(object sender, RoutedEventArgs e) 
{ 
    if (is_subtend(this.textbox.Text) == false) 
     this.textbox.Text += "3"; 
    else 
     this.textbox.Text = "3"; 
} 

Так что я могу сделать, чтобы изменить показ данных TextBox в случае automation_click.
Благодарим за помощь.

+1

Подсказка: используйте 'if (! Is_subtend (this.textbox.Text))' вместо 'if (is_subtend (this.textbox.Text) == false)'. Результат тот же, но он намного лучше, по нескольким причинам. – JensG

ответ

0

Результаты ожидаются. Между этими нажатиями кнопок действительно нет задержек, поэтому он очень быстро меняет текст, не успевает обновить пользовательский интерфейс. Если вы хотите увидеть «3», то ... «3 +» ... затем «3 + 7» ... и т. Д., Затем выполните задержку между нажатиями кнопок.

Чтобы увидеть, что я имею в виду попробовать это

using System.Threading.Tasks; 

// don't forget the async 
private async void Auto_Click(object sender, RoutedEventArgs e) 
{  
    button3_Click(this, null); 
    await Task.Delay(TimeSpan.FromMilliseconds(250)); 
    button_addition_Click(this, null); 
    await Task.Delay(TimeSpan.FromMilliseconds(250)); 
    button7_Click(this, null); 
    await Task.Delay(TimeSpan.FromMilliseconds(250)); 
    button_result_Click(this, null);  
    await Task.Delay(TimeSpan.FromMilliseconds(250)); 
} 

Опустить 250 на значение, которое требуется для скорости, которую вы ищете.

Смежные вопросы