2014-09-02 5 views
0

je viens réussi à utiliser, sur C#, la propriété Binding, je l'ai vu deux façons de le faire: Binding="{Binding Path=DataBinded}" et Binding="{Binding Path=.DataBinded}"Différence entre PATH = et PATH =. sur Databinding

Ils travaillent tous les deux, mais s'il y a deux façons d'écrire, il est pour une raison ... Quelle est la différence entre Path = et Path =. ?

+0

Avez-vous vu [ce SO poste ] (http://stackoverflow.com/questions/5488014/are-binding-path-and-binding-really-equal)? En bref, '{Binding Path =.}' Est lié à la source elle-même, par exemple vous l'utilisez dans les cas où vous ne souhaitez pas lier à une propriété spécifique sur votre source de données, mais plutôt à la source de données elle-même. Peut-être utile de vérifier [ce blog] (http://www.scottlogic.com/blog/2012/04/20/everything-you-wanted-to-know-about-databinding-in-wpf-silverlight-and -wp7-part-two.html) – Michael

+0

@michaelmoore La liaison bidirectionnelle est très intéressante. Je vais devoir maîtriser ça. – Kraenys

Répondre

1

généralement . fait référence à l'objet précédent et vous permet de pointer vers les propriétés de sous, vous pouvez également le considérer comme un séparateur. comme mentionné dans la question il n'y a pas objet précédent dans ce cas le . fait référence à la DataContext lui-même et ainsi Binding="{Binding Path=DataBinded}" et Binding="{Binding Path=.DataBinded}" sont égaux

vous pouvez envisager l'exemple suivant lorsque vous souhaitez lier une valeur de texte directement

<TextBlock Text="{Binding}" /> 

ou

<TextBlock Text="{Binding Path=.}" /> 

à la fois de l'exemple ci-dessus pointe vers le DataContext du TextBlock et se liera à la même chose.

1

L'utilisation d'un chemin de la période ("Path =.") Se liera à la source de courant :)

Vous pouvez lire les documents here dans les remarques seccion (dernier point)