gpt4 book ai didi

c# - WPF/Xaml ContextMenu ItemContainerStyle 行为

转载 作者:太空宇宙 更新时间:2023-11-03 11:21:50 26 4
gpt4 key购买 nike

我的窗口的 DataContext 是一个 IDictionary>。

任何人都可以向我解释为什么这工作正常:

<Style x:Key="MenuItemStyle">
<Setter Property="MenuItem.Header" Value="{Binding Ticker}"/>
</Style>
<Style x:Key="ContextMenuStyle">
<Setter Property="MenuItem.Header" Value="{Binding Key}"/>
<Setter Property="MenuItem.ItemsSource" Value="{Binding Value}"/>
<Setter Property="MenuItem.ItemContainerStyle" Value="{StaticResource MenuItemStyle}"/>
</Style>
<ContextMenu ItemContainerStyle="{StaticResource ContextMenuStyle}" ItemsSource="{Binding Quotes}" />

但这不是:

<Style TargetType="{x:Type ContextMenu}" x:Key="ContextMenuStyle">
<Setter Property="MenuItem.Header" Value="{Binding Key}"/>
<Setter Property="MenuItem.ItemsSource" Value="{Binding Value}"/>
<Setter Property="MenuItem.ItemContainerStyle">
<Setter.Value>
<Style TargetType="{x:Type MenuItem}">
<Setter Property="Header" Value="{Binding Ticker}"/>
</Style>
</Setter.Value>
</Setter>
</Style>
<ContextMenu ItemContainerStyle="{StaticResource ContextMenuStyle}" ItemsSource="{Binding Quotes}" />

编辑:如果我删除 T'argetType="{x:Type ContextMenu}"',它工作正常。但是我不清楚为什么。

谢谢

最佳答案

您需要将 TargetType 的值从 ContextMenu 更改为 MenuItemContextMenuItemContainerStyle 属性将样式设置为 ContextMenu 的容器元素,在本例中为 MenuItem .但是,您将样式的目标类型设置为 ContextMenu,因此它无法工作。参见 this link了解更多详情。

关于c# - WPF/Xaml ContextMenu ItemContainerStyle 行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10694375/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com