Je construis une application de roulette simple. Le joueur (UI) met en place une liste de paris et les soumet à l'objet de la table à évaluer et à payer. J'ai le code pour travailler et le processus de jeu se passe bien. Le problème est qu'après un tour, je ne peux pas obtenir le solde du joueur (bloc de texte) ou la liste de diffusion (listview) à mettre à jour. Existe-t-il une commande globale d'actualisation de la fenêtre qui me manque ou dois-je définir manuellement chacune d'elles pour la mettre à jour d'une manière ou d'une autre?Comment puis-je obtenir une fenêtre wpf à actualiser?
Répondre
WPF peut prendre soin de mettre à jour ces valeurs pour vous automatiquement, mais vous devez le faire savoir quand les choses ont changé. En général, cela se fait en utilisant DependencyProperties sur vos objets de modèle, mais cela peut également être fait en implémentant INotifyPropertyChanged. Dans les deux cas, lorsque vous mettez à jour la valeur d'une propriété, l'événement PropertyChanged est appelé; WPF s'abonne automatiquement à cet événement lorsqu'il se lie à une valeur et mettra à jour l'interface utilisateur lorsqu'une modification se produit. Sans cette notification, WPF ne vérifie pas si les valeurs de votre objet ont changé et vous ne verrez pas la modification reflétée sur l'écran.
Qu'en est-il de l'implémentation de INotifyPropertyChanged et de lier la balance et la liste de diffusion aux contrôles que vous utilisez?
Quelque chose comme:
public class Player : INotifyPropertyChanged
{
private int _balance;
#region Properties
public int Balance
{
get { return this._balance; }
set
{
if (this._balance != value)
{
this._balance = value;
NotifyPropertyChanged("Balance");
}
}
}
public BindingList<Bet> BetList { get; set; }
#endregion // Properties
private void NotifyPropertyChanged(string propertyName)
{
if (this.PropertyChanged != null)
this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
#region INotifyPropertyChanged Members
public event PropertyChangedEventHandler PropertyChanged;
#endregion
}
public class Bet
{
// some code
}
Pour la liste de liaison vous auriez pas besoin de mettre en œuvre quoi que ce soit, car il met en œuvre une interface qui informe des modifications à tout ce qui est lié à (IRaiseItemChangedEvents). Mais encore une fois, vous pourriez utiliser une approche différente.
- 1. Comment actualiser un DataGrid WPF?
- 2. Actualiser la page Dans wpf
- 3. Comment envoyer une fenêtre WPF à l'arrière?
- 4. Actualiser la commande WPF
- 5. WPF ICollectionView Actualiser
- 6. Forcer un contrôle WPF à actualiser?
- 7. Avoir une fenêtre wpf dans une autre fenêtre wpf
- 8. Lancer une fenêtre WPF
- 9. Obtenir un bitmap à partir d'une fenêtre d'application WPF?
- 10. Obtenir un contrôle spécifique à partir d'une fenêtre WPF?
- 11. Comment "actualiser" une fenêtre dans IE sans le focus de vol de la fenêtre?
- 12. Comment obtenir un objet supérieur (fenêtre ou page) dans WPF?
- 13. Comment puis-je actualiser une fenêtre parent à partir d'une iframe?
- 14. Ajouter un contrôle utilisateur à une fenêtre wpf
- 15. Comment animer une fenêtre?
- 16. WPF: ajouter un contrôle usager à une fenêtre
- 17. Comment obtenir la fenêtre à partir de la poignée dans WPF
- 18. WPF: Fenêtre personnalisée
- 19. Comment intégrer une fenêtre Powershell dans une autre fenêtre wpf ou un formulaire Windows?
- 20. Fenêtre d'affichage WPF avant la fenêtre principale
- 21. Comment faire pour déterminer WPF SelectedItem pour une fenêtre
- 22. Comment actualiser Excel pendant le débogage
- 23. Accès à tous les contrôles à partir d'une fenêtre WPF
- 24. Comment implémenter une fenêtre sans chrome avec WPF?
- 25. WPF: Comment rafraîchir une fenêtre pendant le débogage?
- 26. Obtenez la fenêtre pour actualiser (etc) sans appeler Application.ProcessMessages?
- 27. Récupérer des fenêtres contextuelles CRM pour actualiser la fenêtre d'ouverture
- 28. WPF App - Comment faire pour obtenir une référence à la System.Windows.Forms.Form correspondante?
- 29. Comment appeler une sous-fonction publique d'une fenêtre à partir d'une autre fenêtre
- 30. actualiser une page dans extjs