如何绑定TabControl ContextMenu命令?

时间:2012-03-20 16:26:57

标签: wpf templates command contextmenu

我有以下用于TabControl的数据模板。基本上,它会在选项卡中添加一个X按钮,以便用户可以关闭。我想添加一个带有几个命令的上下文菜单。现在,我刚刚在上下文菜单中添加了一个冗余的Close项。但是,当我执行此操作时,我的输出窗口显示“BindingExpression路径错误:在'对象'''String'上找不到'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 :(得分:0)

想出来。我最终将上下文菜单放在停靠面板中。

<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>