我可以在XAML中设置工具栏项吗

本文关键字:工具栏 设置 XAML 我可以 | 更新日期: 2023-09-27 18:29:14

如果这不是解决问题的最佳方法,请随时建议另一种方法。

我有一个工具栏托盘和一个树视图。该树有两个项,分别是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>

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

我可以在XAML中设置工具栏项吗

我想我已经想通了。我只使用了ContextMenu和样式触发器之外的功能,但我想这也是同样的原理。

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