2016-09-05 3 views
0

J'ai une minuterie. dans ma forme est encore possible d'ouvrir la fenêtre de l'enfant. quand j'ouvre et ferme cette fenêtre, la minuterie recommence. Comment puis-je continuer le fonctionnement de la minuterie quand j'ouvre et ferme la fenêtre de l'enfant ??? J'espère beaucoup pour votre aide! ceci est mon minuteur:Comment puis-je continuer l'heure de la minuterie lorsque j'ouvre/ferme la fenêtre enfant

Private timer As DispatcherTimer 
Private CountUp As Integer 

Public Sub DispatcherTimerSetup() 

    timer = New DispatcherTimer() 
    timer.Interval = New TimeSpan(0, 0, 1) 
    AddHandler timer.Tick, AddressOf timer_Tick 
    timer.Start() 

End Sub 

Private Sub timer_Tick(sender As Object, e As Object) 

    CountUp += 1 
    Dim counter As TimeSpan 
    counter = TimeSpan.FromSeconds(CountUp) 
    txblCountdown.Text = counter.ToString("mm\:ss") 

End Sub 

fenêtre enfant:

Private Sub btnMapPoint_Click(sender As Object, e As RoutedEventArgs) 

    SaveControlValuesInObject() 

    Dim intIndex As Integer = CInt(sender.Name.Replace("btnMapPoint_", "")) 

    Frame.Navigate(GetType(Location)) 
    TryCast(Frame.Content, Location).InitForm_Observation(_myEventErist, intIndex, GetType(Event9900000)) 
    TryCast(Frame.Content, Location).IsChangeMapEnabled = False 
    TryCast(Frame.Content, Location).SetSelectedMap(DirectCast(cboMesspunkt.SelectedItem, SMS_KARTE)) 
End Sub 

Meilleures salutations, Polina

+0

Pourriez-vous montrer le code, qui ouvre la fenêtre enfant? Je suppose que la fenêtre enfant est réinitialisée chaque fois que vous l'ouvrez. –

+0

Oui, j'ai ajouté la fenêtre enfant –

Répondre

0

Frame.Navigate(GetType(Location)) REINITIALISERA nouvelle instance de la page Location, donc CountUp valeur sera perdue.

Vous pouvez rendre le champ CountUp public et ajouter un autre champ dans l'objet parent, par exemple, SavedCountUpValue. Ensuite, utilisez l'événement Location.Unloaded pour enregistrer la valeur CountUp dans le champ SavedCountUpValue.

Dans objet parent, dans Location_Unloaded gestionnaire:

SavedCountUpValue = TryCast(Frame.Content, Location).CountUp 

Ensuite, lors de l'initialisation nouvel objet Location, restaurer la valeur CountUp.

Dans objet parent, dans btnMapPoint_Click gestionnaire:

Frame.Navigate(GetType(Location)) 
... 
TryCast(Frame.Content, Location).CountUp = SavedCountUpValue