2010-06-13 7 views
0

J'ai un tabitem wpf dont le contexte de données est défini sur mon objet 'Product'. Tous les contrôles de ce formulaire obtiennent leurs données de l'objet 'Product'. J'ai une listview dont la propriété ItemsSource est définie sur une liste dans mon objet 'Product.DetailsList'. Les colonnes ListView sont liées aux propriétés de l'objet dans 'Product.DetailsList'liaison de données sur les propriétés confusion

Jusqu'à ici, tout fonctionne correctement. Maintenant, j'ai besoin de lier certaines des colonnes de ma listview aux propriétés de mon objet datacontext, c'est-à-dire 'Product'. Quelqu'un peut-il me dire comment puis-je y parvenir?

Répondre

0

Je ne suis pas tout à fait clair pour moi comment la hiérarchie entre vos contrôles est. DataContext fonctionne de cette façon: est hérité du contrôle de niveau supérieur à leurs enfants. Dans ce cas, si le TabItem WPF est le contrôle parent de ListView, ListView aura le même DataContext que le TabItem.

De plus, en supposant que je bien, vous pouvez le faire:

 <TabItem> 
      <ListView> 
       <ListView.View> 
        <GridView> 
         <GridViewColumn DisplayMemberBinding="{Binding RelativeSource={RelativeSource FindAncestor, 
             AncestorType={x:Type TabItem}}, Path=DataContext.MyPropInProductObject}"> 

         </GridViewColumn> 
        </GridView> 
       </ListView.View> 
      </ListView> 
     </TabItem> 

où la partie intéressante est la source relative réglée sur FindAncestor et puisque vous savez que le DataContext est réglé sur l'objet produit, vous peut demander la propriété que vous voulez là-bas.

HTH

0

Si je comprends bien votre question, demandez-vous comment lier à une propriété de l'élément en cours dans la collection. Cela est fait en utilisant slash ("/") dans le chemin de liaison.

Voici exemple de MSDN:

<Button Content="{Binding }" /> 
<Button Content="{Binding Path=/}" /> 
<Button Content="{Binding Path=/Description}" /> 

Dans l'exemple ci-dessus se lie à la première ligne de collecte, la deuxième rangée se lie à l'élément courant de la collecte et de la troisième rangée se lie à Description propriété du point courant dans la collection. Exemple de l'article MSDN: Binding to Collections - Rechercher Pointeurs d'élément actuel.

Questions connexes