2012-03-20 58 views
0

我有我用於TabControl的以下數據模板。基本上,它會向選項卡添加一個X按鈕,以便用戶可以關閉。我想用幾個命令添加一個上下文菜單。現在,我剛剛在上下文菜單中添加了一個冗餘關閉項目。但是,當我執行這個時,我的輸出窗口顯示「BindingExpression path error:'CloseCommand'property not found on'object'''String'...」。將X按鈕綁定到CloseCommand可以正常工作,所以我不明白爲什麼它不適用於上下文菜單項。有任何想法嗎?如何綁定TabControl ContextMenu命令?

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

回答

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>