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