WPF、C#:菜单命令中的 Space

WPF,C#: Space in Menu command

我有一个正在使用的 WPF 菜单,当我在命令中有一个 space 时它根本不喜欢。

<MenuItem Command="Add to Catalog">
</MenuItem>

创建视图时总是抛出一个讨厌的错误,并且Visual Studio抱怨

Cannot resolve symbol "Add to Catalog".

如果我有一段没有白色的文本space,它工作正常。非常感谢任何帮助。

您正在将 Command 绑定到某个方法。 C# 不允许在方法名或变量名中使用空格。那么,当您的方法名称看起来像 'AddtoCatalog' 或 'Add_to_Catalog' 时,为什么 XAML 允许您使用空格呢?您只是将它绑定到不存在的方法。

您可能想为菜单项设置页眉名称?在那里你可以有空间。这是示例:

<MenuItem Header="Add to Catalog" Command="{Binding Add_to_Catalog}"/>

*其中 Add_to_Catalog 是您的方法名称。

首先你需要将命令绑定到 CommandBinding,就像这样。

<Window.CommandBindings>
    <CommandBinding Command="AddToCatalog" CanExecute="AddToCatalog_CanExecute" Executed="AddToCatalog_Executed" />
</Window.CommandBindings>

现在您可以轻松地使用命令

<MenuItem Command="AddToCatalog" Header="Add to Catalog">
</MenuItem>

请注意 header 是不同的。这是菜单中可见的文本。