protected virtual void OnContextMenuPopup(EventArgs e)
{
if (_dataProvider == null) return;
//
ContextMenu.MenuItems.Clear();
//
TreeNodePath node = _helper.TreeView.GetNodeAt(_helper.TreeView.PointToClient(Cursor.Position)) as TreeNodePath;
if (node == null) return;
//
_dataProvider.QueryContextMenuItems(_helper, node);
}