Я реализовал пользовательский класс IComand для одной из моих кнопок. Кнопка размещена на странице «MyPage.xaml», но ее собственный класс ICommand помещается в другой класс, а не в код MyPage. Тогда из XAML я хочу связать кнопку с пользовательской командой классом, а затем я:WPF ICommand через кнопку
MyPage.xaml:
<Page ...>
<Page.CommandBindings>
<CommandBinding Command="RemoveAllCommand"
CanExecute="CanExecute"
Executed="Execute" />
</Page.CommandBindings>
<Page.InputBindings>
<MouseBinding Command="RemoveAllCommand" MouseAction="LeftClick" />
</Page.InputBindings>
<...>
<Button x:Name="MyButton" Command="RemoveAllCommand" .../>
<...>
</Page>
и класс кнопки пользовательской команды:
// Here I derive from MyPage class because I want to access some objects from
// Execute method
public class RemoveAllCommand : MyPage, ICommand
{
public void Execute(Object parameter)
{
<...>
}
public bool CanExecute(Object parameter)
{
<...>
}
public event EventHandler CanExecuteChanged
{
add { CommandManager.RequerySuggested += value; }
remove { CommandManager.RequerySuggested -= value; }
}
}
Моей проблема как сказать MyPage.xaml, что методы Execute и CanExecute для кнопки находятся в другом классе, а не в коде, где расположена кнопка. Как сказать, эти методы находятся в классе RemoveAllCommand на странице XAML.
Также я хочу запустить эту команду, когда на кнопке мыши появляется событие мыши, поэтому я делаю привязку ввода, правильно ли это?
Благодаря
Эй, я сделал это, но без успеха, я получил ошибку при создании проекта: Невозможно создать экземпляр типа RemoveAllCommand. Я объясняю это в ответе. – toni