Я использую следующий код для присоединения контекстного меню к заголовку gricolumn вида списка:
<ListView ... MouseUp="ListView_MouseUp">
В codebehind я устанавливаю свойство ContextMenu
списка для события мыши, чтобы показать контекстное меню:
private void ListView_MouseUp(object sender, MouseButtonEventArgs e)
{
DependencyObject depObj = e.OriginalSource as DependencyObject;
while (depObj != null && (!(depObj is GridViewColumnHeader)))
{
depObj = VisualTreeHelper.GetParent(depObj);
}
if (depObj is GridViewColumnHeader && e.ChangedButton == MouseButton.Left)
{
((GridViewColumnHeader)depObj).ContextMenu = ContextMenu;
}
}
Переменная ContextMenu ссылается на экземпляр contextmenu, который я создал bfeorehand, вы также можете создать ContextMenu в обработчике события Mouse.
Я не уверен, поможет ли это, поскольку я не знаю, как вы выполняете перетаскивание, но стоит попробовать