2011-06-15 1 views
1

J'ai une arborescence liée avec un ItemsControl qui crée dynamiquement les éléments treeview au moment de l'exécution. Cependant, pour ce faire, j'ai ItemsControl ItemsSource lié à une collection différente de celle de l'arborescence. Cela fonctionne, mais le problème vient avec la liaison des zones de texte dans ItemsContol, ce qui devrait être affiché est en fait un membre du SubOrganLocations mais je n'arrive pas à obtenir la liaison pour fonctionner correctement. Peu importe ce que je fais WPF cherche à lier à une propriété de ItemsControl ItemsSource ProjectOrganLocation.LesionTypes au lieu de SubOrganLocations. Ci-dessous un extrait de XAMLItemsControl.ItemTemplate lié à une collection différente de ItemsControl

<TreeView ItemsSource="{Binding GlobalOrganTree}"> 
<TreeView.ItemTemplate> 
    <HierarchicalDataTemplate ItemsSource="{Binding SubOrganLocations}"> 
     <StackPanel Orientation="Horizontal">  
     <ItemsControl x:Name="ItemsControlGrid" ItemsSource="{Binding Path=ProjectOrganLocation.LesionTypes, Source={StaticResource Locator}}" > 
      <ItemsControl.ItemsPanel> 
       <ItemsPanelTemplate> 
        <StackPanel Orientation="Horizontal" /> 
       </ItemsPanelTemplate> 
      </ItemsControl.ItemsPanel> 
      <ItemsControl.ItemTemplate> 
       <DataTemplate> 
        <TextBox Text="{Binding SubOrganLocations, Path=OrganLocation.Labels}" 
         Width="75" 
         TextAlignment="Center"/> 
       </DataTemplate> 
      </ItemsControl.ItemTemplate> 
     </ItemsControl> 
     </StackPanel> 
    </HierarchicalDataTemplate> 
</TreeView.ItemTemplate> 

de l'arbre Comment puis-je obtenir les zones de texte liés à une propriété SubOrganLocations au lieu d'une propriété ProjectOrganLocation.LesionTypes?

Répondre

2

Un RelativeSource est courant lorsque vous avez besoin de se lier à un DataContext qui est plus élevé dans l'arbre:

<TextBox Text="{Binding Path=DataContext.Labels, RelativeSource={RelativeSource AncestorType={x:Type TreeViewItem}}}" /> 

Ce se lie à un DataContext de TreeViewItems (un organe) et obtient les étiquettes de lui.

Questions connexes