Как связать команду TabControl ContextMenu? - PullRequest
0 голосов
/ 20 марта 2012

У меня есть следующий шаблон данных, который я использую для TabControl. По сути, он добавляет кнопку X на вкладку, чтобы пользователь мог закрыть. Я хочу добавить контекстное меню с несколькими командами. Сейчас я только что добавил избыточный пункт Закрыть в контекстном меню. Но когда я выполняю это, мое окно вывода сообщает: «Ошибка пути BindingExpression: свойство« CloseCommand »не найдено для объекта» »« Строка »...». Привязка кнопки X к CloseCommand работала нормально, поэтому я не понимаю, почему она не работает для элемента контекстного меню. Есть идеи?

<DataTemplate x:Key="CloseableTabItemTemplate">
  <DockPanel Width="120">
    <Button Command="{Binding Path=CloseCommand}"
            Content="X"/>
    <ContentPresenter
       Content="{Binding Path=DisplayName}" 
       VerticalAlignment="Center">

      <ContentPresenter.ContextMenu>
        <ContextMenu>
          <MenuItem Header="Close" Command="{Binding Path=CloseCommand}"/>
        </ContextMenu>
      </ContentPresenter.ContextMenu>
    </ContentPresenter>
  </DockPanel>
</DataTemplate>

1 Ответ

0 голосов
/ 21 марта 2012

Разобрался.Я закончил тем, что поместил контекстное меню в панель док-станции.

<DataTemplate x:Key="CloseableTabItemTemplate">
  <DockPanel Width="120">
      <DockPanel.ContextMenu>
        <ContextMenu>
          <MenuItem Header="Close" Command="{Binding Path=CloseCommand}"/>
        </ContextMenu>
      </DockPanel.ContextMenu>

    <Button Command="{Binding Path=CloseCommand}"
            Content="X"/>
    <ContentPresenter
       Content="{Binding Path=DisplayName}" 
       VerticalAlignment="Center">

    </ContentPresenter>
  </DockPanel>
</DataTemplate>
...