У меня есть элемент управления TreeView с кучей TreeNodes.Каждый узел ContextMenu имеет разные элементы MenuIm в зависимости от его состояния.Поэтому в настоящее время я присоединяю каждый TreeNode к своему собственному ContextMenu.
TreeView tv = new TreeView();
TreeNode tn = New TreeNode();
tn.ContextMenu = GetContextMenu(state);
tv.Nodes.Add(tn);
Затем в событии click для MenuItem я пытаюсь получить TreeNode, к которому принадлежит ContextMenu.
MenuItem mi = (MenuItem)sender;
ContextMenu tm = mi.GetContextMenu();
var sc = tm.SourceControl;
проблема в том, что tm.SourceControl == null
.Я заметил, что TreeNode
не происходит от Control
.Вот почему свойство SourceControl
имеет значение null?Как я могу получить соответствующий объект TreeNode?Или даже объект TreeView?