我已經開發了一個在兩個不同時間更新我的 UI 的應用程序,讓我解釋一下。有一個按鈕網格,使用OnTimedEvent和Timer類每 2 秒更新一次。但是,我有一個可以在用戶點擊時更新的分數。我的困境來自于網格更新時整個 UI 更新的形式。我知道為什么會發生這種情況,或者至少我相信我知道,但我不知道如何解決這個問題。歡迎反饋,輸入,解決方案。對任何 UI 線程都是全新的。在繼續之前,我必須允許用戶在 2 秒內進行選擇,但是用戶可以在這 2 秒內多次運行計數,但在 2 秒的威脅計數結束之前它不會更新計數。我已經用盡了我所有的想法!提前致謝。 private void SetTimer() { // Create a timer with a two second interval. aTimer = new System.Timers.Timer(2000); // Hook up the Elapsed event for the timer. aTimer.Elapsed += OnTimedEvent; aTimer.AutoReset = true; aTimer.Enabled = true;}private void OnTimedEvent(Object source, ElapsedEventArgs e){ Device.BeginInvokeOnMainThread(() => { /* ... */ for (int i = 0; i < gridSizeToInt; i++) { NewGrid.RowDefinitions.Add(new RowDefinition { Height = new GridLength(1, GridUnitType.Star) }); NewGrid.ColumnDefinitions.Add(new ColumnDefinition { Width = new GridLength(1, GridUnitType.Star) }); for (int j = 1; j <= gridSizeToInt; j++) { //rand num generator code Button newBtn; NewGrid.Children.Add(newBtn = new Button{BackgroundColor = ColorArray[temp1]}, i, j); newBtn.Clicked += Button_Click; clickCountLabel.Text = "Click Count: " + ClickCount; } } });}
1 回答

慕絲7291255
TA貢獻1859條經驗 獲得超6個贊
但它不會更新計數,直到 2 秒的威脅計數結束
因為您正在更新OnTimedEvent. 它每兩秒觸發一次。您應該將代碼放在按鈕單擊事件中。例如:
private void Button_Click(object sender, EventArgs e)
{
ClickCount++;
clickCountLabel.Text = "Click Count: " + ClickCount;
}
- 1 回答
- 0 關注
- 189 瀏覽
添加回答
舉報
0/150
提交
取消