Страницы

Поиск по вопросам

пятница, 14 февраля 2020 г.

Команда на DoubleClick по элементу ListView

#c_sharp #wpf #mvvm


Есть


    
        
            
                
                
                    
                
            
        
    



Где StudentList - коллекция студентов, SelectedStudent - конкретный выбранный студент.

Необходимо по двойному нажатию на ListView, вызвать команду EditStudent. Команды
умею привязывать только к Button.
Как поступить в этом случае?
    


Ответы

Ответ 1



Давайте воспользуемся такой штукой как InputBindings: ... Это уже работает, но у всех ItemsControl есть нюанс - по умолчанию они не растягивают свои элементы, это можно увидеть, если задать StackPanel любой цвет в Background, поэтому команда будет вызываться только при клике четко по тексту элемента. Исправить это можно, подкорректировав стиль ListViewItem: ... Ну и нужно еще что-то сделать с отступами, так как то что у вас сейчас StackPanel Margin="10" вам скорее всего не понравится, например можно обернуть всё в прозрачный Border (InputBindings теперь переезжают в него, в StackPanel они больше не нужны): ... Вот тогда между элементами будут визуальные отступы, но команда будет отрабатывать по клику в любом месте элемента

Ответ 2



private void ListView_MouseDoubleClick_1(object sender, MouseButtonEventArgs e) { EditStudent(); } Выделите listview в конструкторе; Перейдите во вкладку "свойства"; Кликните на кнопку с картинкой молнии в верхнем правом углу, ее название "Обработчики событий выбранного элемента", в разных студиях может называться по разному; Найдите событие с именем MouseDoubleClick, в пустое поле кликните 2 раза и студия все сделает за Вас;

Ответ 3





Комментариев нет:

Отправить комментарий