Как обработать событие при нажатии на пустое место? - PullRequest
5 голосов
/ 24 августа 2010

Я хочу поймать событие, когда по списку щелкают левой кнопкой мыши на пустом месте, то есть не щелкая ни один элемент в элементе управления списком.

Я выполнил поиск в списке событий списка, но не нашел ни одного. Как я могу это сделать? Пожалуйста, помогите!

[Изменить] Что я хочу сделать, если смогу поймать это событие: отмените выбор всех элементов в списке.

Ответы [ 3 ]

5 голосов
/ 25 августа 2010

Если вы прикрепите обработчик к событию MouseLeftButtonDown в ListView, он будет срабатывать только при нажатии на области вне ListViewItem.Любые щелчки внутри элементов будут обрабатываться самими элементами для управления поведением выбора в ListView.

Вы можете вносить изменения в интерактивные области, настраивая фон ({x: Null} не активируется, все остальное) и поле ListViewItems, установив ItemContainerStyle в ListView.Также убедитесь, что вы не используете нулевой фон на самом ListView (по умолчанию белый, прозрачный тоже работает).

0 голосов
/ 31 декабря 2017

Я обнаружил, что если раньше я щелкал один раз по элементу в списке (и, таким образом, выбирал его), то затем дважды щелкал по пустому месту в списке, чтобы получить нежелательный результат действия ранее выбранного элемента, как будто дважды щелкнул (а не пустое место). Чтобы обойти это, я использовал следующий код (vb.net):

Private Sub ListView1_MouseLeftButtonDown(sender As Object, e As MouseButtonEventArgs) Handles ListView1.MouseLeftButtonDown

    ListView1.SelectedIndex = -1

End Sub

с этим кодом на месте, двойной щелчок по пустому пространству отменяет выбор любых ранее выбранных элементов и дает желаемый эффект, когда пользователь ничего не производит, когда он дважды щелкает в пустой области.

0 голосов
/ 24 августа 2010

ListBoxItem элемент управления обрабатывает нажатия на ListBox.Вы должны либо:

  • использовать PreviewMouseDown событие в ListBox
  • Добавить обработчик события в код с помощью myListBox.AddHandler метода

См. Как прикрепить событие MouseDown в ListBox для пояснения и примеров кода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...