我有这样的代码:
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Vertical"
ContextMenuService.ShowOnDisabled="True">
<StackPanel.ContextMenu>
<ContextMenu>
<MenuItem Command="Delete" Click="DeleteEvent">
</MenuItem>
</ContextMenu>
</StackPanel.ContextMenu>
<TextBlock Text="{Binding EventName}">
</TextBlock>
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
Run Code Online (Sandbox Code Playgroud)
不幸的是它不起作用.我的上下文菜单被禁用(它正在显示,但我无法点击它,因为它被禁用).我已经读过这个问题与选择问题有关但我没有找到任何解决方案.你有什么想法?
首先,奇怪的是你正在尝试设置Command和Click事件.你应该设置一个或另一个.操作被禁用的事实可能是因为您正在设置一个值为CanExecute = false的Command;
您可以尝试为ListBoxItem设置ItemContainerStyle,而不是编写DataTemplate,如下所示:
<ListBox>
<ListBox.ItemContainerStyle>
<Style TargetType="ListBoxItem">
<Setter Property="ContextMenu">
<Setter.Value>
<ContextMenu>
<MenuItem Header="Delete" Click="DeleteEvent"/>
</ContextMenu>
</Setter.Value>
</Setter>
<Setter Property="Content" Value="{Binding Path=EventName}"/>
</Style>
</ListBox.ItemContainerStyle>
</ListBox>
Run Code Online (Sandbox Code Playgroud)
这里我直接设置了ListBoxItem实例的ContextMenu,因此它将在右侧控件上显示菜单.
| 归档时间: |
|
| 查看次数: |
12056 次 |
| 最近记录: |