2009-07-13 9 views
0

Comment définir l'élément sélectionné de la zone de liste déroulante dans xaml? J'ai essayé quelque chose à faire comme ceci:ComboBox Élément sélectionné dans WPF

<ComboBox x:Name="cmbProject" 
    ItemsSource="{Binding Project}" 
    DisplayMemberPath="Name" 
    SelectedValuePath="Id" 
    SelectedItem="{Binding Path=Project,Mode=TwoWay}" 
    SelectedValue="{Binding Path=Id,Mode=OneWay}"/> 

Le code ci-dessus ne fonctionne pas. Je ne sais pas où je vais mal.

Répondre

0

La ItemsSource propriété doit être une collection, à savoir Projects ou ProjectList, je suppose ..., il vous suffit également de définir la DisplayMemberPath et SelectedValue:

<ComboBox x:Name="cmbProject" ItemsSource="{Binding Projects}" 
      DisplayMemberPath="Name" 
      SelectedValue="{Binding Project, Mode=TwoWay}" /> 

Mise à jour: basée sur l'information dans le commentaires le code devient:

<ComboBox x:Name="cmbProjectStatus" 
      ItemsSource="{Binding ProjectStatuses}" 
      DisplayMemberPath="Name" 
      SelectedValuePath="ID" 
      SelectedValue="{Binding Path=ProjectStatus.ID}" 
      SelectedItem="{Binding Path=ProjectStatus}" /> 

le DataContext possède une propriété ProjectStatus de type ProjectStatus et un ProjectStatuses propriété de type ObservableCollection<ProjectStatus>.

+0

Je l'ai essayé, mais il ne montre toujours pas l'élément sélectionné dans la liste déroulante. –

+0

Cela a fonctionné pour moi quand j'ai essayé, comment définissez-vous l'élément sélectionné? Pouvez-vous poster le code? –

+0

0

Avez-vous essayé de définir IsSynchronizedWithCurrentItem="True" pour la liste déroulante? Cela a fonctionné pour moi.