Comment : obtenir un ComboBoxItem

Mise à jour : novembre 2007

Lorsque vous liez un ComboBox à une source de données, vous devez souvent accéder à ComboBoxItem pour accomplir une certaine action. Vous pouvez également obtenir le ComboBoxItem en utilisant ItemContainerGenerator. L'exemple suivant montre un ComboBox qui est lié à une source de données appelée myCities.

Exemple

<ComboBox Name="cb" Margin="10,10,3,3" Width="200" Height="30" Grid.Column="0" Grid.Row="2"         
          ItemsSource="{StaticResource myCities}" Text="My Cities"
          IsEditable="true"  IsReadOnly="true" 
          IsDropDownOpen="True" StaysOpenOnEdit="True">
</ComboBox>

Vous pouvez obtenir le ComboBoxItem en utilisant la méthode ItemContainerGenerator.ContainerFromIndex et en spécifiant l'index de l'élément voulu. L'exemple suivant obtient ComboBoxItem en spécifiant l'index de l'élément, puis sélectionne cet élément dans ComboBox.

private void GetComboBoxItem(int index)
{
    ComboBoxItem cbi = (ComboBoxItem)
         (cb.ItemContainerGenerator.ContainerFromIndex(index));

    cbi.IsSelected = true;
    Info.Content = "I visited " +
         (cbi.Content.ToString()) + ".";
}

Vous aurez parfois l'objet de l'élément dans la source de données mais sans connaître son index. Dans ce cas, vous pouvez utiliser la méthode ItemContainerGenerator.ContainerFromItem pour obtenir ComboBoxItem. L'exemple suivant obtient ComboBoxItem en spécifiant l'objet dans la collection, puis sélectionne cet élément dans ComboBox.

ComboBoxItem cbi = (ComboBoxItem)
    cb.ItemContainerGenerator.ContainerFromItem(objectInCollection);

cbi.IsSelected = true;

Voir aussi

Tâches

Comment : obtenir un ListBoxItem

Concepts

Vue d'ensemble de la liaison de données