#c# #.net #wpf
#c# #.net #wpf
Вопрос:
Вот определение члена ICommand :http://msdn.microsoft.com/en-us/library/system.windows.input.icommand.execute.aspx
Подпись является:
void Execute(
Object parameter
)
Он реализован RoutedCommand со следующей подписью ( http://msdn.microsoft.com/en-us/library/system.windows.input.routedcommand.execute.aspx ) :
public void Execute(
Object parameter,
IInputElement target
)
Как RoutedCommand может реализовать ICommand с дополнительным аргументом (IInputElement) в функции-члене?
Ответ №1:
Он использует явную реализацию интерфейса, чтобы «скрыть» ICommand.Execute
метод, который принимает один параметр. Execute
Метод, который принимает два параметра , не является реализацией ICommand.Execute
.
public class RoutedCommand : ICommand
{
public void Execute(object parameter, IInputElement target)
{
// ...
}
// explicit interface implementation of ICommand.Execute
void ICommand.Execute(object parameter)
{
// ...
}
}
Комментарии:
1. Спасибо за ответ. Я также был удивлен, но и здесь мой запрос был разрешен.
Ответ №2:
ICommand.Метод интерфейса Execute() реализован явно. Документы здесь.