【发布时间】:2018-06-25 03:21:56
【问题描述】:
我有ListBox 和ContextMenu,我已将MenuItem 配置为仅在我单击所选项目时才起作用。
这是 XAML 代码:
<ListBox x:Name="MessagesLb" Grid.Column="1" Margin="241,100,22.4,50" Grid.Row="1" BorderThickness="0" FontSize="14" FontWeight="SemiBold" ItemsSource="{Binding Items}" SelectionMode="Extended">
<ListBox.ItemContainerStyle>
<Style TargetType="ListBoxItem">
<Setter Property="ContextMenu">
<Setter.Value>
<ContextMenu>
<MenuItem Header="Copia" Click="MessagesLbCopySubMi_Click" />
<Separator/>
<MenuItem Header="Dettagli" />
</ContextMenu>
</Setter.Value>
</Setter>
<Style.Triggers>
<DataTrigger Binding="{Binding SelectedItems.Count, RelativeSource={RelativeSource AncestorType={x:Type ListBox}}}" Value="0">
<Setter Property="ContextMenu" Value="{x:Null}" />
</DataTrigger>
</Style.Triggers>
</Style>
</ListBox.ItemContainerStyle>
<ListBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding}" HorizontalAlignment="Center" VerticalAlignment="Center" />
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
我尝试在我的MenuItem 中添加Click 事件,但它不起作用。
例子:
<MenuItem Header="Copia" Click="MessagesLbCopySubMi_Click" />
private void MessagesLbCopySubMi_Click(object sender, RoutedEventArgs e)
{
MessageBox.Show("Click event done");
}
我该如何解决这个问题?
【问题讨论】:
-
"MenuItem 只有在我右键单击它时才能工作" - 你不需要这样的触发器。
ListBox只会为实际项目创建ListBoxItem,当将上下文菜单分配给ListBoxItem时,您已经满足此条件,即您必须右键单击ListBoxItem才能查看上下文菜单。您可以为ListBox本身分配另一个上下文菜单,然后会显示。
标签: c# wpf windows xaml listbox