У меня возникает проблема с пространством имен при попытке реализовать некоторые пользовательские привязки в WPF. Я получаю сообщение об ошибке "Имя" CustomCommands "не существует в пространстве имен" clr-namespace: GraphicsBook; assembly = Testbed2D ".
В моем XAML у меня есть:
<Window x:Class="GraphicsBook.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:k="clr-namespace:GraphicsBook;assembly=Testbed2D"
Title="Window1"
<Window.CommandBindings>
<CommandBinding Command="k:CustomCommands.AddCircle" CanExecute="AddCircleCommand_CanExecute" Executed="AddCircleCommand_Executed"></CommandBinding>
</Window.CommandBindings>
<Menu>
<MenuItem Header="Add">
<MenuItem Command="k:CustomCommands.AddCircle" />
</MenuItem>
</Menu>
И мой файл CustomsCommand.cs находится в папке проекта. Внутри этого файла:
namespace GraphicsBook
{
public partial class CustomCommandSample : Window
{
public CustomCommandSample()
{
...
}
private void AddCircleCommand_CanExecute(object sender, CanExecuteRoutedEventArgs e)
{
e.CanExecute = true;
}
}
public static class CustomCommands
{
public static readonly RoutedUICommand AddCircle = new RoutedUICommand
(
"AddCircle",
"AddCircle",
typeof(CustomCommands),
new InputGestureCollection()
{
new KeyGesture(Key.F4, ModifierKeys.Alt)
}
);
}
}
Ошибка исходит из строки "MenuItem Command =" k: CustomCommands.AddCircle ".
Любая помощь приветствуется!!
Неправильное отображение пространства имен XML/CLR: у вас есть k
aliasing GraphicsBook
, но CustomCommands
объявляется в GraphicsBook.Assignment
.
Вы также можете попробовать использовать {x:Static k:CustomCommands.AddCircle}
вместо просто k:CustomCommands.AddCircle
.
CustomCommands
объявлен в сборкеTestbed2D
?