Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.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
C# WPF菜单项单击事件调用两次而不是一次_C#_.net_Wpf - Fatal编程技术网

C# WPF菜单项单击事件调用两次而不是一次

C# WPF菜单项单击事件调用两次而不是一次,c#,.net,wpf,C#,.net,Wpf,我的XAML中有一个菜单,如下所示 但是,MenuItem\u AddNewQuality\u Click()执行了两次。 然后我试着移除 但这一次没有执行任何事情。 那么,有谁能告诉我它有什么问题吗?如果您在事件处理程序中设置该事件已被处理,那么您将只调用它一次: private void MenuItem_AddNewQuality_Click(object sender, RoutedEventArgs e) { //.... e.Handled = true; }

我的XAML中有一个
菜单
,如下所示


但是,
MenuItem\u AddNewQuality\u Click()
执行了两次。 然后我试着移除


但这一次没有执行任何事情。
那么,有谁能告诉我它有什么问题吗?

如果您在事件处理程序中设置该事件已被处理,那么您将只调用它一次:

private void MenuItem_AddNewQuality_Click(object sender, RoutedEventArgs e)
{
    //....
    e.Handled = true;
}
另一种方法是将
单击
事件设置为所有嵌套菜单项的隐式样式(这是double call的功能),但在
菜单项中显式设置:

<MenuItem Width="20" Height="20" x:Name="MenuItem_AddNewQuality" Click="MenuItem_AddNewQuality_Click">

根据应用程序的目标,可以采用或考虑一种或另一种解决方案作为变通方法。如果您认为所有解决方案都是可行的,那么请随意发布正确的解决方案。
<Style x:Key="MenItemStyle" TargetType="MenuItem">
    <EventSetter Event="Click" Handler="MenuItem_AddNewQuality_Click"/>
</Style>
<MenuItem Style="{StaticResource ResourceKey=MenItemStyle}">