«Не найдена цель для метода», выброшенная Caliburn Message.Attach ()

У меня есть окно списка, для которого я ставил ItemContainer, чтобы включить контекстное меню. Вот и xaml для того же.

  ...         

Я закодировал целевой метод в ViewModel, как указано ниже.

 public void DeleteGroup() { //ToDo ... } 

ViewModel устанавливается как DataContext UserControl, в котором есть ListBox.

Вышеприведенный код приводит к «не найденной цели для метода» . Я не знаю, почему это не работает. Я также пробовал следующую вариацию

  

где UCRelayDispositionView – это имя UserControl.

Почему вышеуказанный код не работает?

Редактировать: 1 Также попробовал следующее

  

и это

  

EDIT: 2 Я попытался использовать тег следующим образом в ItemContainer, но он тоже не работает.

            

РЕДАКТИРОВАТЬ 3: Ошибки привязки

 System.Windows.Data Error: 40 : BindingExpression path error: 'PlacementTarget' property not found on 'object' ''MenuItem' (Name='')'. BindingExpression:Path=PlacementTarget.Tag; DataItem='MenuItem' (Name=''); target element is 'MenuItem' (Name=''); target property is 'TargetWithoutContext' (type 'Object') System.Windows.Data Error: 4 : Cannot find source for binding with reference 'ElementName=UCRelayDispositionView'. BindingExpression:Path=DataContext; DataItem=null; target element is 'ContextMenu' (Name=''); target property is 'Tag' (type 'Object') 

    Ваша проблема заключается в том, что вы пытаетесь привязать цель к элементу, который не существует в одном и том же визуальном дереве, например, у вас есть ContextMenu на котором находится элемент.

    Чтобы правильно получить цель действия, вам необходимо использовать свойство ContextMenu PlacementTarget .

    Выполните следующий ответ на SO для XAML

    Контекстные меню WPF в Caliburn Micro

    Итак, следующий XAML должен работать:

      

    Это должно искать PlacementTarget в ContextMenu и устанавливать цель для действия на значение PlacementTarget.Tag (которое должно быть ListBoxItem ).

    Если вы установите ListBoxItem.Tag (как вы уже сделали), чтобы быть DataContext родительского контейнера ( ListBox ), вы должны быть в порядке

    поэтому привязка тега должна быть:

      

    например, все это должно быть: