Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wpf 上下文菜单可见性的触发器?_Wpf_Xaml_Triggers_Contextmenu - Fatal编程技术网

Wpf 上下文菜单可见性的触发器?

Wpf 上下文菜单可见性的触发器?,wpf,xaml,triggers,contextmenu,Wpf,Xaml,Triggers,Contextmenu,我有一个列表框,开始时里面没有任何项目。当用户使用GUI从组合框中选择一个值并单击add按钮时,列表框将添加一个项。列表框还有一个上下文菜单集 当Listbox中没有项目时,如何使用XAML确保Listbox.contextmenu.Visibility属性设置为隐藏 更新 实际上,我最终使用了这个代码。请评论一下它是否合适 <Style TargetType="ListBox"> <Style.Resources> <Con

我有一个列表框,开始时里面没有任何项目。当用户使用GUI从组合框中选择一个值并单击add按钮时,列表框将添加一个项。列表框还有一个上下文菜单集

当Listbox中没有项目时,如何使用XAML确保Listbox.contextmenu.Visibility属性设置为隐藏

更新

实际上,我最终使用了这个代码。请评论一下它是否合适

<Style TargetType="ListBox">
        <Style.Resources>
            <ContextMenu x:Key="cm">
                <MenuItem Header="Buy"/>
                <MenuItem Header="Sell"/>
            </ContextMenu>
        </Style.Resources>
        <Setter Property="ContextMenu" Value="{StaticResource cm}"/>
        <Style.Triggers>
            <Trigger  Property="ListBox.HasItems" Value="False">
                <Setter Property="ContextMenu.Visibility" Value="Hidden"/>
            </Trigger>
        </Style.Triggers>
    </Style>

我不认为干扰ContextMenu的可见性是个好主意,如果列表为空,只需
null
清除整个菜单即可

e、 g



您也可以选择使用,如果没有项目,则无法打开ContextMenu,但这当然可能不适合您的场景。

谢谢,最后我实际使用了它。为什么不取消它呢?在我看来,改变可视性就像是滥用财产。(此外,如果我的回答解决了您的问题或对您有足够的帮助,您可以通过左侧的复选框接受)
<Style TargetType="{x:Type ListBox}">
    <Style.Resources>
        <ContextMenu x:Key="cm">
            <!-- Menu here -->
        </ContextMenu>
    </Style.Resources>
    <Setter Property="ContextMenu" Value="{StaticResource cm}" />
    <Style.Triggers>
        <DataTrigger Binding="{Binding Items.Count, RelativeSource={RelativeSource Self}}" Value="0">
            <Setter Property="ContextMenu" Value="{x:Null}" />
        </DataTrigger>
    </Style.Triggers>
</Style>