2010-11-15 7 views
0

je le XAML suivant (Silverlight, mais il ne devrait pas d'importance):Reliure à conteneur ne fonctionne pas, mais se liant à des objets fonctionne

<ListBox x:Name="Results"> ... </ListBox> 
<StackPanel DataContext="{Binding ElementName=Results, Path='SelectedItem.Attributes'}"> 
    <TextBlock Text="{Binding ElementName=Results, Path='SelectedItem.Attributes[ID]'}" /> 
    <TextBlock Text="{Binding '[ID]'}" /> 
</StackPanel> 

Quand je remplir la zone de liste, est peuplé la deuxième TextBlock, mais le premier TextBlock ne l'est pas. Lorsque je sélectionne un élément dans la liste, le premier TextBlock est rempli, mais le second ne change pas.

Je suppose que quelque chose me manque pour dire au DataContext de StackPanel qu'il doit être actualisé chaque fois que je modifie l'objet SelectedItem dans ma ListBox, mais je ne sais pas ce que je dois faire.

Idéalement, je voudrais ne pas avoir à lier le chemin complet pour chacun de mes TextBlocks (il y en aura beaucoup).

+0

Salut Rob, je pense que ça a l'air bien. J'ai moi-même créé un petit exemple, et cela a fonctionné (si vous le voulez, je le posterai). Pourriez-vous fournir plus d'informations? Qu'est-ce que ItemsSource de la zone de liste, ... Peut-être que cela aide à résoudre votre problème. – TerenceJackson

+0

Je lier le ListBox dans le code derrière à une liste ... obj a une propriété Dictionary appelée attributs. Je l'ai fonctionné quand je lie des choses comme je le fais dans le TextBlock supérieur, mais je voulais lier des choses comme le second TextBlock. Le TextBlock inférieur est lié, mais seulement quand je remplis le ListBox, pas quand l'élément choisi a changé. Le TextBlock supérieur est seulement peuplé, puis le SelectedItem de la ListBox est changé, pas quand il est peuplé ... – Rob

Répondre

0

Gaah ... Je l'ai trouvé. Certains nuls (vous avez lu ... moi) ont décidé qu'il serait intelligent de surcharger le datacontext de la stackpanel quand j'ai peuplé le ListBox. Désolé pour tous ceux qui travaillaient là-dessus.

Questions connexes