我可以在XAML中设置ToolBar项吗?

时间:2014-11-05 21:36:19

标签: c# wpf xaml

如果这不是解决问题的最佳方法,请随意为我的问题建议一种替代方法。

我有一个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>

我可以根据选择的项目设置工具栏的任何常规属性(背景等)。我不知道如何继续将特定菜单添加到工具栏中。

1 个答案:

答案 0 :(得分:0)

我想我已经弄明白了。我只使用ContextMenu并在样式触发器之外完成此操作,但我认为这将是相同的原则。

<TreeView>
    <TreeView.ContextMenu>
        <ContextMenu>
            <StaticResourceExtension ResourceKey="myMenuItem"></StaticResourceExtension>
        </ContextMenu>
    </TreeView.ContextMenu>
</TreeView>