попробуйте что-то вроде этого ..., это объяснит, как изменить элементы, используя мышь и клавиатуру, ....
Я обнаружил, что этот метод отлично работает во всех условиях.Но я не уверен, что есть что-то более точное, чем этот метод.
bool IsMouse = false;
private void cmbMy_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
if (IsMouse)
{
//Write the logic if selection is changed by mouse
}
else
{
//Write the logic if selection is changed by keyboard
}
IsMouse = false;
}
private void cmbMy_IsMouseCapturedChanged(object sender, DependencyPropertyChangedEventArgs e)
{
IsMouse = true;
}
В событии со списком isMouseCapturedChanged я сделал переменную bool true, а когда выбор изменился из поля со списком, я проверяю bool, выполняя требуемую задачу, а затем устанавливая isMouse в false.
Или вам нужно создать свой собственный комбинированный список ..
Вам необходимо создать собственный класс ComboBox и переопределить метод Control.ProcessKeyEventArgs .