WPF: Обработка нажатий клавиш для нескольких элементов окна

Я попытался добавить в программу поддержку клавиатуры. Для большинства элементов все это реализовано по-умолчанию (например, поставить галочку в checkbox или написать текст в TextBox). Я сейчас говорю про обработку событий нажатия клавиши Enter .
В моем приложении два элемента ListView, которые выводят в таблицу данные. На левом списке выбирается элемент, в зависимости от его содержания выводится результат в таблицу с правой стороны. Если все операции делать мышкой, то проблем не возникает. Однако, если отслеживать нажатие клавиши Enter , то делают это оба ListView, т.к. находятся в общем активном окне. Чтобы отфильтровать ненужные события, я добавил в код проверку количества выделенных элементов ListView. Если их было больше нуля, то считалось, что в данный момент работают с этим ListView:

private void eventsView_KeyDown(object sender, KeyEventArgs e)
{
    // Проверяем, выбран ли этот список
    if (eventsView.SelectedItems.Count > 0)
    {
        // Если нажата клавиша Enter, то показываем детальную информацию о событии
        if (e.Key == Key.Enter)
        {
            Details d = new Details((EventRecord)eventsView.SelectedItem);
            d.ShowDialog();
        }
    }
}


Подписаться
Уведомление о
guest
0 Комментарий
Oldest
Newest Most Voted
Inline Feedbacks
View all comments