2011-03-31 3 views
1

J'ai un TabControl qui contient un ListView imbriqué. Le ListView est lié à l'élément sélectionné dans le TabControl parent. Cela fonctionne très bien dans cet onglet de commutation affiche les éléments enfants dans le ListView. Qu'est-ce que je ne peux pas comprendre, est de savoir comment lier à SelectedItem ListView de l'extérieur du Menu UserControl.WPF Binding To Child Control

-à-dire

<TabControl x:Name="Parent"> 
    <TabControl.ContentTemplate> 
     <DataTemplate> 
      <ListView x:Name="Child" 
         ItemsSource="{Binding Path=SelectedItem.Tabs, ElementName=Parent}"/> 
     </DataTemplate> 
    </TabControl.ContentTemplate> 
</TabControl> 

<ItemsControl ItemsSource="{Binding Path=SelectedItem.Controls, ElementName=Child}"> 
    <ItemsControl.ItemTemplate> 
     <DataTemplate> 
      ... controls go here ... 
     </DataTemplate> 
    </ItemsControl.ItemTemplate> 
</ItemsControl> 

J'utilise MV-VM donc ne veulent pas faire mon obligatoire dans le code idéalement - Je suis sûr qu'il est possible, tout ne peut pas le comprendre :)

Répondre

1

En général, si vous avez besoin d'une propriété de niveau supérieur, vous pouvez déplacer la propriété vers le ViewModel lié au niveau supérieur. Donc, si je comprends bien, je déplacerais la propriété de ViewModel qui est liée à SelectedItem à la machine virtuelle de TabControl.

Est-ce que cela a du sens?

+0

Oui, j'ai déplacé changé le TabControl pour être aussi un ListView et plutôt que d'imbriquer l'enfant ListView, il est maintenant au même niveau que le contrôle Parent qui fonctionne bien. Juste besoin de trier le style maintenant :) –