|
1 / 1 / 1
Регистрация: 03.02.2020
Сообщений: 18
|
|||||||||||
WPF Как обрабатывать клики на элементы списка ListView?04.02.2020, 20:07. Показов 8692. Ответов 7
Метки нет (Все метки)
товарищи, очень нужна помощь, как обработать нажатие левой и правой кнопки мыши на элемент списка в ListView в WPF
есть элемент ListView (menulist)
обработки по SelectionChanged недостаточно, а на событие Selected говорит, что такого на существует . кто знает , как это можно сделать помогите плиз.
0
|
|||||||||||
| 04.02.2020, 20:07 | |
|
Ответы с готовыми решениями:
7
Не отображаются элементы списка ListView, полученного у другого списка При клики в BaseAdapter меняется массив строк, как пересоздать ListView с новым массивом? |
|
Модератор
|
||||
| 04.02.2020, 20:59 | ||||
|
В WinForms нет привязок, поэтому там есть это событие. ListView наследует Selector. А он обрабатывает левый клик для изменения выделения, и дальше это событие не всплывает. Правый же клик не приводит к выделению и узнать над каким элементов он был произведён затруднительно. Для дальнейших советов нужно больше деталей вашей реализации и алгоритма который вы хотите получить в интерфейсе пользователя. Опишите подробнее, каждый пунктик. Типа такого:
0
|
||||
|
1 / 1 / 1
Регистрация: 03.02.2020
Сообщений: 18
|
|
| 04.02.2020, 21:32 [ТС] | |
|
- пользователь наводит курсор на нужную ему строку
- нажимает ЛКМ - после отжатия ЛКМ вызывается метод, который добавляет содержимое элемента в коллекцию элементов типа MENU_LIST_VIEW - пользователь наводит курсор на нужную ему строку - нажимает ПКМ - после отжатия ПКМ вызывается метод, который ищет в коллекции MENU (не важно как она реализована) элемент соответствующий поля namt в выделенной строке и выводит его на экран по сути проблема именно в том как обрабатывать нажатия разных кнопок мыши по строке, я думал ,что можно было бы сделать элементы ListView как кнопки и уже через них обрабатывать нажатия, но я так и не понял, как это сделать.
0
|
|
|
Модератор
|
||||
| 04.02.2020, 21:59 | ||||
|
Добавлено через 2 минуты Почему нельзя обработать это изменение? При отпускании ЛКМ надо обработать выделенную строку или строку над которой будет она отпущена? Возможны сценарии когда это будут разные строки. Добавлено через 1 минуту Событие для выделенной строки или для строки над которой отпущена ПКМ? Добавлено через 2 минуты И вопрос по обоим клавишам. Что нужно вызвать: - метод в CB View - метод Контекста Данных? Если да, то какого элемента? Или самого окна? - что надо передать в методы? Ничего, просто вызвать без параметров? Выделенную строку?
1
|
||||
|
1 / 1 / 1
Регистрация: 03.02.2020
Сообщений: 18
|
|
| 04.02.2020, 22:07 [ТС] | |
|
то есть, в принципе обрабатывать нажатие ПКМ по ListView и потом просто через свойство cursor получать необходимый элемент...
что же, огромное спасибо за объяснение, вы мне очень помогли. Пойду дальше постигать все прелести и особенности WPF
0
|
|
|
Модератор
|
||
| 04.02.2020, 22:23 | ||
|
Вы меня не правильно поняли. На ListView (и всех производных Selector), на кнопках (производных от ButtonBase) ЛКМ, вообще, невозможно отловить. Оно на них замещено на SelectionChanged или Click. Можно поймать туннельные события Preview ЛКМ и ПКМ для нажатия и отпускания. Но надо понимать, что они возникают ДО самих всплывающих ЛКМ и ПКМ. То есть PreviewMouseLeftButtonDown возникает до MouseLeftButtonDown. И на момент его возникновения строка ещё не выделена. Это событие спускается (туннелирует) с самого верха (от OS) до элемента нижнего уровня. Дойдя до самого нижнего уровня, она возбуждает в нём событие MouseLeftButtonDown которое подымается (всплывает) по уровням вверх. Но всплывающим событиям можно прекратить всплытие. Так поступают кнопки и Selector. Поэтому я от вас и прошу деталей, где в какой момент и откуда надо вызвать метод, что этому методу надо передать в параметрах. Можно к элементам в строке прикрепить всплывающие команды которые перехватывать обрабатывать в родительских контейнерах. Но надо понимать, что этим командам нужно передать в параметрах.
0
|
||
|
1 / 1 / 1
Регистрация: 03.02.2020
Сообщений: 18
|
|||||||||||
| 04.02.2020, 22:52 [ТС] | |||||||||||
|
я так понял, вы советуете через свойство command указывать на самодельные команды, но мне так сложно не надо.
у меня получилось через события MouseLeftButtonUp="leftmouse" и MouseRightButtonUp="ewr"
вот тестовые обработчики для ЛКМ
всё заработало.
0
|
|||||||||||
|
Модератор
|
|
| 04.02.2020, 23:06 | |
|
0
|
|
| 04.02.2020, 23:06 | |
|
Помогаю со студенческими работами здесь
8
Как обрабатывать выбранный элемент списка Combobox Как обрабатывать граф в виде списка смежности Как обрабатывать не только View элементы Как обрабатывать элементы массива по типу обычных переменных? Как обрабатывать элементы содержимого ячеек таблицы на Web странице Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
|
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога
Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога
Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
|
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
|
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога
Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
|