Подтвердить что ты не робот

Связывание с элементом контекстного меню на родительский элемент управления

У меня есть элемент управления, в этом элементе управления есть команда SaveToClipboardCommand. Я хочу связать команду контекстного меню с этой командой, чтобы при щелчке по ней выполнялась команда copy to clipboard.

<Control x:Name="Control">
    <Control.ContextMenu>
        <ContextMenu>
            <MenuItem Command={"Bind to SaveToClipboardCommand here"} Header="Some Header" />
        </ContextMenu>
    </Control.ContextMenu/>
</Control>

Элемент управления (для параметра sake) определяется следующим образом:

partial class Control
{
      private ICommand _saveToClipboard;
      public ICommand SaveToClipboardCommand
      {
          get
          {
              if (_saveToClipboard == null)
              {
                  _saveToClipboard = new RelayCommand(
                         x=> SaveToClipboard());
              }
              return _saveToClipboard;
          }
     }
}

Я попытался использовать привязки RelativeSource и ElementName, но оба они не работают. Является ли то, что я пытаюсь сделать, даже возможно?

Спасибо!

4b9b3361

Ответ 1

РЕДАКТИРОВАТЬ (после того, как показано, как работает элемент управления): Хорошо ContextMenu несколько сложно, потому что он фактически не является частью одного и того же визуального дерева. Попробуйте сделать это:

<MenuItem Command="{Binding Path=PlacementTarget.SaveToClipboardCommand,
    RelativeSource={RelativeSource AncestorType=ContextMenu}}"/>

Оригинальный ответ

Открыта ли эта команда как общедоступная собственность Контроля? Если команда фактически отображается в ViewModel висит контроль DataContext, чтобы сделать следующее:

Command={Binding ElementName=Control, Path=DataContext.SaveToClipboardCommand}

Можете ли вы показать, как эта команда в настоящее время подвергается?

Ответ 2

Command={Binding ElementName=Control, Path=SaveToClipboardCommand}

НТН