Mécanisme de mise à jour de l'objet business/contrôle en WPF
Par Thierry Thoua,
mercredi, octobre 31 2007.
Lien permanent
WPF
Par défaut, lorsque l'on utilise le binding .net en wpf, la source (le contrôle visuel) est mise à jour lorsque la cible (l'objet business) change. Tout ceci se passe via l'implémentation de l'interface INotifyPropertyChanged. Ce post explique en quelques mots les différents types de mise à jour du contrôle disponible en WPF.
Il existe trois méthodes pour mettre à jour l'objet business/contrôle.
- PropertyChanged
Il s'agit du mode de mise-à-jour par défaut pour la plupart des propriétés "Dependency". La mise à jour du contrôle se fait si tôt la valeur change. Ainsi si on a un texte que l'on lie via cette technique, si tôt on change un caractère, les contrôles qui affiche ce même texte reprendront la nouvelle valeur.
- LostFocus
Il s'agit du mécanisme utilisé par défaut pour certaines propriétés "Dependency" comme la propriété Text d'un contrôle TextBox. La mise à jour s'effectue lorsque l'on perds le focus sur le contrôle (par exemple lorsque l'on tape sur la touche "tab").
- Explicit
Ce mécanisme impose au développeur de lui même spécifier dans son code le moment ou il va prendre en compte la modification. Cela s'effectue simplement via un appel à la méthode UpdateSource().
[csharp]
textBox.GetBindingExpression(TextBox.TextProperty).UpdateSource();
Exemple de binding en XAML:
[xml]
<TextBox Name="textBox" Text="{Binding Path=Label, UpdateSourceTrigger=Explicit}"/>