在WPF里实现新建菜单时发现自己对于接口的理解太衰了,所以看了一下,以后是一点总结
新建菜单需要基层ICommand接口,
ICommand CreateNew
定义一个函数,在点击“新建”菜单时触发
public void ExecuteNew(object parameter)
{
}
下面把这两个关联起来
要实现接口,必须先定义一个类来实现这个接口
public class ReplyCommand:ICommand
在这里定义一个变量 Action<object> execute,用来接收传入的执行新建的函数
定义一个构造函数
public ReplyCommand(Action<object> execute)
{
this.execute = execute;
}
这样就把新建需要执行的函数传入类里了
实现ICommand的两个方法和一个事件
public bool CanExecute(object parameter)
{
return true;
}
public void Execute(object parameter)
{
this.execute(parameter);
}
public event EventHandler CanExecuteChanged
{
add {
CommandManager.RequerySuggested += value;
}
remove
{
CommandManager.RequerySuggested -= value;
}
}
在实现的Execute函数里,执行传入的函数。
这样在定义ICommand 的变量的时候给 CreateNew赋值为
this.CreateNew = new ReplayCommand(ExecuteNew);
当点“菜单”菜单的时候触发ICommand的Execute方法, 结果执行this.execute(parameter)函数。