Affichage de l'Heure actuelle avec affichage continu dans WPF utilisant MVVM
Je veux afficher le temps de lecture sur mon écran avec la mise à jour continue en WPF écran en utilisant le pattern MVVM.
Je suis en train d'écrire ce code dans mon modèle de vue
//creating a property
private string _currentDateTime;
public string CurrentDateTime
{
get
{
return _currentDateTime;
}
set
{
if (value != _currentDateTime)
{
_currentDateTime = value;
this.RaisePropertyChanged(() => this.CurrentDateTime);
}
}
}
et j'ai écrit cette méthode
public string GetCurrentDateTime()
{
try
{
DispatcherTimer timer = new DispatcherTimer(new TimeSpan(0, 0, 1),
DispatcherPriority.Normal,
delegate
{
this.CurrentDateTime = DateTime.Now.ToString("HH:mm:ss");
},
this.Dispatcher);
return CurrentDateTime;
}
catch
{
return CurrentDateTime;
}
}
J'ai lié mon bloc de texte avec la propriété, mais elle se montre d'exception comme this.CurrentDateTime
est null
.
Toute suggestion pourquoi?
- Prenez soin de vous! Toujours commencer une nouvelle minuterie lorsque GetCurrentDateTime est appelé.
Vous devez vous connecter pour publier un commentaire.
Je ne suis pas sûr de ce que votre intention est avec
RaisePropertyChanged(() => this.CurrentDateTime)
.Si elle est de prendre soin de MVVM propriété a changé de notifications, ce code doit être dans votre VM
puis votre jeu doit être
de mettre à jour continuellement votre temps, utilisez un
Timer
Vous pouvez ensuite définir l'intervalle de 1 seconde et sur chaque horloge événement écoulé définir votre
CurrentDateTime
Je ne suis pas sûr de savoir pourquoi ce problème se produit mais j'ai obtenu la même fonctionnalité, mais léger changement de code.
J'ai changé le code dans
GetCurrentDateTime
de la méthodetry
blocet avec cela, j'ai ajouté une nouvelle méthode pour la minuterie
Maintenant, il est de travail