2010-03-23 9 views
4

J'ai vu cette syntaxe apparaître, et j'ai essayé de google pour sa définition en vain; qu'est-ce que cela signifie quand un dp est lié de cette façon?WPF syntaxe de liaison Question

<Grid> 
    <ContentControl Content="{Binding}"/> 
</Grid> 

j'étais en supposant que vous devez lier à une propriété sur le DataContext, ou un autre élément, mais cela semble se lier à rien.

+0

Le même comportement donne la syntaxe "{Binding.}" (Court de "{Binding Path =.}"). Quelqu'un peut-il expliquer ce que signifie le point? –

Répondre

7

Je crois que cela signifie que vous êtes lié à la racine de n'importe quel contexte de liaison. Donc, si vous utilisez cette syntaxe dans un datatemplate qui fait partie d'un contrôle de liste, vous lieriez le niveau racine de tout ce que le contrôle parent (le contrôle de liste) liait.

3

Je pense que {Binding} fait référence au DataContext lui-même. Edit (clarification): Par DataContext, j'entends le niveau actuel DataContext. Par exemple, si DataContext de votre fenêtre est lié à une liste, la définition de ItemsSource sur un contrôle ListBox dans votre fenêtre à {Binding} lierait la ListBox à la liste elle-même, pas une propriété de la liste, comme Count.

0

{} est Binding pour {Reliure [CurrentDataContext]}

0

{} Binding signifie que vous souhaitez associer au DataContext courant qui pourrait être mis sur l'objet lui-même. Si aucun objet DataContext n'est défini sur l'objet en cours, il parcourt l'objet VisualTree et trouve le parent le plus proche possédant un objet DataContext.