2014-11-05 59 views
0

如果這不是最好的解決方法,請隨時提出一個替代方法來解決我的問題。我可以在XAML中設置ToolBar項目嗎?

我有一個ToolBarTray和一個TreeView。該樹有兩個項目分別是Concrete1和Concrete2類。我希望工具欄具有不同的菜單,具體取決於樹中選擇哪種類型的項目。

<ToolBarTray DockPanel.Dock="Top"> 
    <ToolBar> 
     <ToolBar.Style> 
      <Style TargetType="{x:Type ToolBar}"> 
       <Style.Triggers> 
        <DataTrigger Binding="{Binding ElementName=tree, Path=SelectedItem, Converter={StaticResource convert}}" Value="{x:Type root:Concrete1}"> 
         <!--what do i do here??--> 
        </DataTrigger> 
        <DataTrigger Binding="{Binding ElementName=tree, Path=SelectedItem, Converter={StaticResource convert}}" Value="{x:Type root:Concrete2}"> 
         <!--what do i do here??--> 
        </DataTrigger> 
       </Style.Triggers> 
      </Style> 
     </ToolBar.Style> 

     <ToolBar.Resources> 
      <Menu x:Key="awd"> 
       <MenuItem Header="AWD"></MenuItem> 
      </Menu> 
      <Menu x:Key="dwa"> 
       <MenuItem Header="DWA"></MenuItem> 
      </Menu> 
     </ToolBar.Resources> 
    </ToolBar> 
</ToolBarTray> 

<TreeView x:Name="tree" ItemsSource="{Binding Families}"></TreeView> 

我已經儘可能地設置任何常規屬性(背景等)的工具欄,具體取決於選擇哪個項目。我不知道如何繼續添加特定的菜單到工具欄。

回答

0

我想我已經想通了。我只使用ContextMenu完成了這一工作,並且在風格觸發器之外,但我想這將是相同的原理。

<TreeView> 
    <TreeView.ContextMenu> 
     <ContextMenu> 
      <StaticResourceExtension ResourceKey="myMenuItem"></StaticResourceExtension> 
     </ContextMenu> 
    </TreeView.ContextMenu> 
</TreeView> 
相關問題