Procedura: ottenere un oggetto ComboBoxItem

Aggiornamento: novembre 2007

Quando ComboBox viene associato a un'origine dati, spesso è necessario ottenere l'oggetto ComboBoxItem per eseguire una particolare azione. È possibile ottenere ComboBoxItem utilizzando ItemContainerGenerator. Nell'esempio riportato di seguito viene illustrato un oggetto ComboBox associato a un'origine dati denominata myCities.

Esempio

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

È possibile ottenere ComboBoxItem utilizzando il metodo ItemContainerGenerator.ContainerFromIndex e specificando l'indice dell'elemento desiderato. Nell'esempio riportato di seguito, ComboBoxItem viene ottenuto specificando l'indice dell'elemento e quindi selezionando l'elemento in ComboBox.

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

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

Talvolta si dispone dell'oggetto dell'elemento nell'origine dati ma non se ne conosce l'indice. In tal caso, è possibile utilizzare il metodo ItemContainerGenerator.ContainerFromItem per ottenere ComboBoxItem. Nell'esempio riportato di seguito, ComboBoxItem viene ottenuto specificando l'oggetto dell'insieme e quindi selezionando l'elemento in ComboBox.

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

cbi.IsSelected = true;

Vedere anche

Attività

Procedura: ottenere un oggetto ListBoxItem

Concetti

Cenni preliminari sull'associazione dati