Как имитировать поведение левого клика для правого клика для TreeView в WPF? - PullRequest
0 голосов
/ 21 апреля 2011

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

Я хочу сделать это, потому что, когда я щелкаю правой кнопкой мыши, я устанавливаю контекстное меню TreeView, когдаSelectedItem изменяется в зависимости от e.NewValue из TreeView_SelectedItemChanged.Но сам щелчок правой кнопкой мыши не меняет SelectedItem, поэтому появляется неправильное меню.Или я должен сначала щелкнуть левой кнопкой мыши на элементе, который я хочу выбрать, а затем щелкнуть правой кнопкой мыши.

Есть идеи, как это сделать?

Ответы [ 2 ]

1 голос
/ 22 апреля 2011

Принято правильное решение об использовании события нажатия мыши, но вы уверены, что вам нужны Visual Tree Helper и Hit Testing? Вы можете попробовать что-то вроде:

var parent = this.DataContext as Parent;
var clicked = (sender as FrameworkElement).DataContext as Child;
parent.SelectedChild = clicked;

Помните, что вы обычно можете получить к вашим объектам модели представления как DataContext FrameworkElement. Использование визуального дерева и тестирование попаданий встречается не часто.

1 голос
/ 21 апреля 2011

Переопределить событие правого клика. Вот пример, чтобы сделать это .

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