2016-03-01 3 views
0

Я делаю обратный отсчет, который должен отображать метку в графе, но метка (lblMostrador) на моем диспетчере просмотра не отображает текст. Код прав, потому что поле вывода правильно отображает счет. Есть ли какая-либо специальная конфигурация или же для работы с ярлыком?Ярлык не отображает текст - Xamarin IOS

частичный класс EsquerdaViewController: UIViewController {

private System.Timers.Timer aTimer; 
    private DateTime tempo = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, 0, 1, 0); 
    private DateTime tempo2 = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, 0, 0, 1); 


    public EsquerdaViewController (IntPtr handle) : base (handle) 
    { 
    } 

    public override void ViewDidLoad() 
    { 
     base.ViewDidLoad(); 
     Console.WriteLine ("Testando..."); 

     btnVoltar.TouchUpInside += (sebder, e) => 
     { 
      NavigationController.PopViewController(true); 
     }; 


     btnIniciar.TouchUpInside += (sender, e) => 
     { 
      aTimer = new System.Timers.Timer(1000); 

      aTimer.Elapsed += OnTimedEvent; 

      aTimer.AutoReset = true; 

      aTimer.Enabled = true; 

     }; 


    } 

    private void OnTimedEvent(Object source, System.Timers.ElapsedEventArgs e) 
    { 
     System.TimeSpan diff1 = tempo.Subtract(tempo2); 

     if (diff1.Minutes == 0 && diff1.Seconds == 0) 
      aTimer.Stop(); 

     DateTime tempoNovo  = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, 0, diff1.Minutes, diff1.Seconds); 
     tempo     = tempoNovo; 
     Console.WriteLine (String.Format("{0:00}:{1:00}", diff1.Minutes, diff1.Seconds)); 
     lblMostrador.Text = String.Format ("{0:00}:{1:00}", diff1.Minutes, diff1.Seconds); 
    } 
} 

ответ

4

При обновлении объекта пользовательского интерфейса, вы должны быть уверены, что вы выполняете в потоке пользовательского интерфейса:

InvokeOnMainThread (() => { 
    lblMostrador.Text = String.Format ("{0:00}:{1:00}", diff1.Minutes, diff1.Seconds); 
}); 
Смежные вопросы