98 votes

Que signifie "{Binding Path=.}" dans le binding WPF ?

Qu'est-ce que {Binding Path=.} dans une liaison WPF ?

Je vois que certaines personnes l'utilisent, mais je n'ai pas trouvé d'explication.

Y a-t-il d'autres symboles spéciaux dans la syntaxe de liaison (autres que {Binding /} ) ?

82voto

Ryan Versaw Points 3682

J'ai trouvé ceci Fiche d'information sur les liaisons WPF il y a quelques mois et je le trouve très utile, surtout pour ceux qui apprennent le WPF. Il y a quelques fautes d'orthographe, mais il est tout de même très bon.

Voici un petit extrait (qui est censé avoir un format tabulaire) :

Reliure de base

{Binding}

Lier au DataContext actuel.

{Nom du lien}

Lié à la propriété "Name" du DataContext actuel.

{Nom du lien.Longueur}

Lier à la propriété Length de l'objet dans la propriété Name du DataContext actuel.

{Binding ElementName=SomeTextBox, Path=Text}

Liez à la propriété "Text" de l'élément XAML avec name="SomeTextBox" ou x:Name="SomeTextBox".

Lien direct vers l'aide-mémoire

3 votes

Très bien, mais qu'est-ce que {Binding .}. Je cherche une explication pour celui-ci mais je ne la trouve pas ?

0 votes

@batmaci Je veux dire que c'est équivalent à {Binding } mais cela fait plusieurs années que je n'ai pas beaucoup travaillé avec Xaml, donc je ne suis pas sûr.

0 votes

@batmaci, des années plus tard... {Binding string} est similaire à {Binding Path=string} . string n'est pas utilisé pour initialiser la propriété Path directement, mais comme paramètre pour le constructeur Binding (string path) qui initialise ensuite Path propriété. Cela ne fonctionne que lorsque la chaîne de caractères est le premier jeton après Binding le reste étant des initialisateurs réguliers (paires propriété=valeur). Sachant que, Binding . est en effet égal à Binding Path=. et la syntaxe du chemin de propriété est disponible aquí .

67voto

micahtan Points 6457

C'est un raccourci pour se lier à la source actuelle. Pour plus d'informations, voir aquí .

En particulier dans la documentation :

Optionnellement, un point (.) peut être utilisé pour se lier à la source actuelle source actuelle. Par exemple, Text="{Binding}" est équivalent à Text="{Binding Path=.}" .

1 votes

@Ray - Je pense exactement la même chose. Si vous utilisez la sténographie, pourquoi vous arrêter là ?

5 votes

Je ne peux pas discuter avec MSDN, mais il y a quand même une différence. {Binding} ne peut pas être utilisé sur un objet lui-même (étant à double sens il nécessite une propriété) alors que {Binding Path=.} fonctionne.

0 votes

@Sergey - Avez-vous un exemple de code où {Binding} ne fonctionne pas mais où {Binding Path=.} fonctionne ? Si oui, MSDN a probablement besoin d'être mis à jour...

1voto

NastyNateDoggy Points 114

En ce qui concerne Binding Path, cela vous aide-t-il ?

http://msdn.microsoft.com/en-us/magazine/cc163299.aspx

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X