Практическое руководство. Получение элемента ComboBoxItem
Обновлен: Ноябрь 2007
При привязке элемента управления ComboBox к источнику данных часто требуется получить элемент ComboBoxItem для выполнения определенных действий. Элемент ComboBoxItem можно получить с помощью класса ItemContainerGenerator. В следующем примере показан элемент управления ComboBox, привязанный к источнику данных myCities.
Пример
<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>
Элемент ComboBoxItem можно получить с помощью метода ItemContainerGenerator.ContainerFromIndex, указав индекс требуемого элемента. В следующем примере показано, как получить элемент ComboBoxItem с заданным индексом и затем выбрать его в элементе управления ComboBox.
private void GetComboBoxItem(int index)
{
ComboBoxItem cbi = (ComboBoxItem)
(cb.ItemContainerGenerator.ContainerFromIndex(index));
cbi.IsSelected = true;
Info.Content = "I visited " +
(cbi.Content.ToString()) + ".";
}
Бывают случаи, когда известен не индекс элемента в источнике данных, а объект, связанный с этим элементом. В таком случае для получения элемента ComboBoxItem можно использовать метод ItemContainerGenerator.ContainerFromItem. В следующем примере показано, как получить элемент ComboBoxItem указанного объекта в коллекции и затем выбрать его в элементе управления ComboBox.
ComboBoxItem cbi = (ComboBoxItem)
cb.ItemContainerGenerator.ContainerFromItem(objectInCollection);
cbi.IsSelected = true;
См. также
Задачи
Практическое руководство. Получение элемента ListBoxItem