2014-09-19 2 views
0

Cela semble être une question assez standard mais je n'arrive pas à trouver de réponse. Comment puis-je lier à l'objet en cours dans le contexte de données (c'est-à-dire this).Spécifier l'élément actuel dans DataContext directement

Pour donner un exemple simplifié:

<ListView ItemsSource="{Binding ListOfFoos}"> 
    <ListView.View> 
     <GridView> 
      <!-- How do I specify a Foo item directly here 
       and not just one of its properties? --> 
      <GridViewColumn DisplayMemberBinding="{Binding this}"/> 
     </GridView> 
    </ListView.View> 
</ListView> 

J'ai essayé this ou . mais en vain. De toute évidence, il est un simple hack juste créer une propriété pseudo dans la classe Foo ala:

public Foo Self { get { return this; } } 

qui alors me permet d'utiliser simplement {Binding Self}, mais je suis sûr qu'il doit y avoir une meilleure façon d'y parvenir.

Répondre

3

Nous pouvons mettre rien de se référer à un courant DataContext:

Bar="{Binding}" 

Ou si vous voulez utiliser ., mettre la valeur de Path propriété de Binding:

Bar="{Binding Path=.}"