2010-03-20 7 views
0

J'ai deux classesWPF: Boîtes Databinding et Combo

Company 
    CompanyKey 
    CompanyName 

Person 
    FirstName 
    LastName 
    CompanyKey 

Les éléments de liste sur la zone de liste déroulante est liée à une collection de CompanyObjects. Comment faire pour lier la propriété d'élément sélectionné de la zone de liste à la propriété Person.CompanyKey?

+0

Etes-vous sûr que votre question est formulée correctement? Si la zone de liste déroulante contient des objets de société, comment pouvez-vous attendre que l'élément sélectionné dépende de la classe de personne? Y a-t-il une seule personne par entreprise? – Timores

+0

La zone de liste déroulante indique la société dans laquelle la personne se trouve. –

Répondre

1

Si j'ai bien compris votre question, voici une application de démonstration qui explique la liaison de données de la zone de liste déroulante: Demo App

Espérons que cela aide.
Cordialement,
Mihir Gokani

EDIT: Fragment exemple de code

<Window 
    x:Class="WpfApplication.Window1" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    Title="Window1" 
    Height="300" 
    Width="300"> 
    <StackPanel> 

     <TextBlock 
      Margin="10">Persons</TextBlock> 
     <ComboBox 
      x:Name="comboPersons" 
      Height="25" 
      Margin="10" 
      ItemsSource="{Binding Persons}"> 
      <ComboBox.ItemTemplate> 
       <DataTemplate> 
        <StackPanel 
         Orientation="Horizontal"> 
         <TextBlock 
          Text="{Binding FirstName}" 
          Margin="0,0,5,0" /> 
         <TextBlock 
          Text="{Binding LastName}" /> 
        </StackPanel> 
       </DataTemplate> 
      </ComboBox.ItemTemplate> 
     </ComboBox> 

     <TextBlock 
      Margin="10">Companies</TextBlock> 
     <ComboBox 
      x:Name="comboCompanies" 
      Height="25" 
      Margin="10" 
      ItemsSource="{Binding Companies}" 
      DisplayMemberPath="CompanyName" 
      SelectedValuePath="CompanyKey" 
      SelectedValue="{Binding SelectedItem.CompanyKey, ElementName=comboPersons}" /> 

    </StackPanel> 
</Window> 
+0

Cela semble trop facile. Je m'attendais à ce que ce soit une grosse douleur dans le cul, pas seulement quelques propriétés. –