Я хотел был бы иметь возможность выбрать TreeViewItem
в моей программе при щелчке правой кнопкой мыши. Раньше (в this question) я попытался сделать это, вызвав метод SetSelectedItem()
, откуда бы я ни хотел, чтобы можно было выбрать TreeViewItem
. Ответ с этого вопроса был скомпилирован и запущен, но на самом деле не позволял TreeViewItem
быть выбранным, как я хотел.Выберите TreeViewItem правой кнопкой мыши
This question, который я рассматривал, - это почти такой же вопрос, как этот, за исключением hierachicalDataTemplate
. Мой TreeView
не имеет hierachicalDataTemplate
, и если это не нужно для моей программы, я бы хотел его избежать.
Это то, что я компиляции, но не влияет на изменение прямо сейчас ...
//Sets selected item in TreeView and passes to MainWindowViewModel
private void SetSelectedItem()
{
MainWindowViewModel.SelectedItem = Tree_One.SelectedItem as TreeViewItem;
}
//**** This is the function this question is about -- It's Supposed to select item on RightClick
private void Tree_One_MouseRightButtonDown(object sender, MouseButtonEventArgs e)
{
SetSelectedItem();
}
Так просто для ясности, узел, который я правой кнопкой мыши не выбран, как ожидалось. Что я делаю неправильно и как я могу это исправить?
UPDATE:
Я думаю, что я знаю, что эта проблема после того, как играл с ниже ответ. Код, который у меня есть в этом вопросе, фактически не изменяет выбранный элемент, он просто повторяет выбор выбранного элемента, повторно его выбирает. Если бы был способ изменить выбранный элемент на элемент, который щелкнул правой кнопкой мыши, он будет работать отлично. Любая подсказка о том, как сделать что-то подобное?
Благодарим за помощь.
В обработчике 'MouseRightButtonDown' попробуйте написать это:' TreeViewItem Item = отправитель как TreeViewItem; if (Item! = null) {Item.IsSelected = true; } ' –
Пробовал это без везения. Странный. –
Возможный дубликат [Выбрать узел TreeView в правом щелчке перед отображением ContextMenu] (http://stackoverflow.com/questions/592373/select-treeview-node-on-right-click-before-displaying-contextmenu) –