Cómo: Obtener un elemento ComboBoxItem

Actualización: noviembre 2007

Cuando se enlaza un objeto ComboBox a un origen de datos, con frecuencia es preciso obtener ComboBoxItem para llevar a cabo una acción determinada. Puede obtener el elemento ComboBoxItem mediante un objeto ItemContainerGenerator. En el ejemplo siguiente se muestra un objeto ComboBox que está enlazado a un origen de datos denominado myCities.

Ejemplo

<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>

Puede obtener el elemento ComboBoxItem utilizando el método ItemContainerGenerator.ContainerFromIndex y especificando el índice del elemento deseado. En el ejemplo siguiente se obtiene el elemento ComboBoxItem especificando su índice y, a continuación, seleccionando ese elemento en ComboBox.

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

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

En ocasiones, el objeto del elemento se encuentra en el origen de datos, pero no se conoce su índice. En este caso, puede utilizar el método ItemContainerGenerator.ContainerFromItem para obtener el elemento ComboBoxItem. En el ejemplo siguiente se obtiene el elemento ComboBoxItem especificando el objeto en la colección y, a continuación, seleccionando ese elemento en ComboBox.

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

cbi.IsSelected = true;

Vea también

Tareas

Cómo: Obtener un elemento ListBoxItem

Conceptos

Información general sobre el enlace de datos