Вот способ сделать это, хотя он может не охватывать все случаи - но вы не предоставили слишком много деталей (например, что происходит, когда уже выбран элемент? Вы все еще хотите выбрать первый элемент в списке? Приведенный ниже код будет выделять первый элемент только в том случае, если в выпадающем списке нет выделения. Чтобы всегда выделять первый элемент, событие DropDownOpened
также должно обрабатываться).
public MainWindow()
{
InitializeComponent();
combobox.ItemContainerGenerator.StatusChanged += new EventHandler(ItemContainerGenerator_StatusChanged);
}
void ItemContainerGenerator_StatusChanged(object sender, EventArgs e)
{
if (combobox.ItemContainerGenerator.Status == System.Windows.Controls.Primitives.GeneratorStatus.ContainersGenerated)
{
(combobox.ItemContainerGenerator.ContainerFromIndex(0) as ComboBoxItem).Focus();
}
}
(Надеюсь, я правильно понял, и это то, что вы хотите сделать).