以下是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如何在成员函数中使用额外参数(IInputElement)实现ICommand?
答案 0 :(得分:9)
它使用explicit interface implementation来“隐藏”采用单个参数的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 :(得分:1)
ICommand.Execute()接口方法是显式实现的。文档are here。