2010-05-13 6 views
1

J'ai une situation où j'ai une zone de liste de zones de liste déroulantes, principalement il se lie à une entité de pont afin que l'objet contienne des clés étrangères. Ce que je dois faire est que j'ai besoin de lier l'affichage des combos aux entités respectives et leurs membres de valeur aux valeurs de clé étrangère dans l'entité de pont à laquelle je lie la boîte de liste.Listbox des zones de liste déroulantes et les lier WPF

le code que j'ai maintenant:

<ListBox Name="lstServices" ScrollViewer.HorizontalScrollBarVisibility="Disabled" HorizontalContentAlignment="Stretch"> 
        <ListBox.ItemTemplate> 
         <DataTemplate> 
          <Grid Margin="2" DataContext="{Binding ElementName=wndMain,Path=DataContext}"> 
           <Grid.ColumnDefinitions> 
            <ColumnDefinition Width="*"/> 
            <ColumnDefinition Width="*"/> 
           </Grid.ColumnDefinitions> 

           <ComboBox Name="cmbService" SelectedIndex="0" DisplayMemberPath="Name" SelectedValuePath="{Binding RelativeSource={RelativeSource Mode=TemplatedParent}, Path=FK_ServiceID}" ItemsSource="{Binding Path=AllServices}" Grid.Column="0"></ComboBox> 
           <ComboBox Name="cmbService_Role" Margin="2,0,0,0" SelectedValuePath="{Binding Path=FK_ServiceRoleID}" DisplayMemberPath="Name" ItemsSource="{Binding Path=AllService_Roles}" Grid.Column="1"></ComboBox> 
          </Grid> 
         </DataTemplate> 
        </ListBox.ItemTemplate> 
       </ListBox> 

je pouvais pour afficher les valeurs que je avais besoin, mais depuis la liste contexte d'objet changé je ne peux pas arriver à la zone de liste ItemSource.

Toute aide est appréciée Bishoy

Répondre

2

Je l'ai: D, voici comment il devrait aller

<ListBox Name="lstServices" ScrollViewer.HorizontalScrollBarVisibility="Disabled" HorizontalContentAlignment="Stretch" ItemsSource="{Binding MemberServices}"> 
        <ListBox.ItemTemplate> 
         <DataTemplate> 
          <Grid > 
           <Grid.ColumnDefinitions> 
            <ColumnDefinition Width="*" /> 
            <ColumnDefinition Width="*" /> 
           </Grid.ColumnDefinitions> 
           <ComboBox Name="cmbService" SelectedValue="{Binding FK_ServiceID,Mode=TwoWay}" ItemsSource="{Binding ElementName=wndMain, Path=DataContext.AllServices,Mode=OneTime}" SelectedValuePath="ID" DisplayMemberPath="Name" Grid.Column="0" ></ComboBox> 
           <ComboBox Name="cmbService_Role" SelectedValue="{Binding FK_ServiceRoleID,Mode=TwoWay}" ItemsSource="{Binding ElementName=wndMain, Path=DataContext.AllService_Roles,Mode=OneTime}" SelectedValuePath="ID" DisplayMemberPath="Name" Grid.Column="1" Margin="2,0,0,0"></ComboBox> 
          </Grid> 
         </DataTemplate> 
        </ListBox.ItemTemplate>