Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/272.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/14.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# 菜单项上不触发RelayCommand单击WPF MVVM_C#_Wpf_Mvvm_Menuitem - Fatal编程技术网

C# 菜单项上不触发RelayCommand单击WPF MVVM

C# 菜单项上不触发RelayCommand单击WPF MVVM,c#,wpf,mvvm,menuitem,C#,Wpf,Mvvm,Menuitem,我的WPF表单上有一个菜单项,它运行一个导入例程,我已经将command属性绑定到视图模型中的ICommand属性,但由于某种原因,该方法不会启动 这是xaml: <Menu Height="21" Margin="0,-2,0,0" VerticalAlignment="Top" Grid.ColumnSpan="2"> <MenuItem Header="File"

我的WPF表单上有一个菜单项,它运行一个导入例程,我已经将command属性绑定到视图模型中的ICommand属性,但由于某种原因,该方法不会启动

这是xaml:

<Menu Height="21"
              Margin="0,-2,0,0"
              VerticalAlignment="Top"
              Grid.ColumnSpan="2">
            <MenuItem Header="File" Command="{Binding ImportFileCommand}">Import</MenuItem>
</Menu>
这是我在表单上所有按钮使用的模式,但菜单项就是不起作用。我是否遗漏了一些东西,或者菜单项是否必须以不同的方式完成

谢谢。

将您的XAML更改为

<Menu Height="21" Margin="0,-2,0,0" VerticalAlignment="Top" Grid.ColumnSpan="2">
    <MenuItem Header="File">
        <MenuItem Header="Import" Command="{Binding ImportFileCommand}" />
    </MenuItem>
</Menu>


在您的示例中,MenuItem元素的“导入”内容隐式创建父文件MenuItem的子MenuItem。此子菜单项未定义命令属性,因此无法执行。显然,在父菜单项上定义的命令的可执行性被子菜单扩展功能覆盖。

菜单中是否有正确的数据上下文?这一部分在问题中并不清楚。否则它看起来不错。是的,如果我在importfile命令上设置了一个断点,RelayCommand就会更新,但它就是不想启动。我不敢相信我已经检查过了。
<Menu Height="21" Margin="0,-2,0,0" VerticalAlignment="Top" Grid.ColumnSpan="2">
    <MenuItem Header="File">
        <MenuItem Header="Import" Command="{Binding ImportFileCommand}" />
    </MenuItem>
</Menu>