C# 菜单项上不触发RelayCommand单击WPF MVVM
我的WPF表单上有一个菜单项,它运行一个导入例程,我已经将command属性绑定到视图模型中的ICommand属性,但由于某种原因,该方法不会启动 这是xaml: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"
<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>