Faire du binding avec WPF, depuis le code
XAML offre déjà beaucoup de possibilités, mais l'utilisation de C# (d'un langage CLR, plus généralement) avec WPF offre des possibilités quasi illimitées.
Le Data Binding est beaucoup utilisé dans le code XAML pour lier une propriété d'un contrôle à une propriété d'un autre contrôle. Cependant, le Data Binding est utilisable avec beaucoup d'autre objets que des contrôles.
En fait, les seules restrictions sur la cible du binding sont :
- L'objet cible doit être un DependencyObject
- La propriété cible de cet objet doit être une DependencyProperty
La source, elle, peut être très variée :
- Une DependencyProperty
- Une propriété CLR
- Un XmlNode, puis en spécifiant un chemin XPath
Pour faire un binding dans le code, c'est très simple :
- Créer un nouvel objet Binding
- Indiquer dans cet objet l'objet source, et la propriété source
- Lier ce binding à une DependencyProperty d'un DependencyObject
Par exemple :
Entity source = new Entity();
Binding binding;
b.Source = source;
b.Path = new PropertyPath("Length");
button.SetBinding(Button.WidthProperty, b);
Par contre cette méthode SetBinding n'est disponible que sur les objets FrameworkElement et FrameworkContentElement. Mais ce n'est pas grave, pour un DependencyObjet quelconque, il suffit d'utiliser BindingOperations.SetBinding :
TranslateTransform target = new TranslateTransform();
Binding binding;
b.Source = source;
b.Path = new PropertyPath("Left");
BindingOperations.SetBinding(target, TranslateTransform.XProperty, b);
Ce post vous a plu ? Ajoutez le dans vos favoris pour ne pas perdre de temps à le retrouver le jour où vous en aurez besoin :