如何:获取 ComboBoxItem

更新:2007 年 11 月

ComboBox 绑定到数据源时,通常需要访问 ComboBoxItem 以执行某个操作。 可以通过使用 ItemContainerGenerator 来获取 ComboBoxItem。下面的示例演示一个绑定到名为 myCities 的数据源的 ComboBox

示例

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

您可以通过使用 ItemContainerGenerator.ContainerFromIndex 方法并指定所需的项的索引来获取 ComboBoxItem。下面的示例通过指定项的索引获取 ComboBoxItem,然后在 ComboBox 中选择该项。

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

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

有时数据源中有项的对象,但不知道其索引。在该情况下,可以使用 ItemContainerGenerator.ContainerFromItem 方法来获取 ComboBoxItem。下面的示例通过指定集合中的对象获取 ComboBox,然后在 ComboBoxItem 中选择该项。

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

cbi.IsSelected = true;

请参见

任务

如何:获取 ListBoxItem

概念

数据绑定概述