2007年9月11日星期二

Command

当我们处理界面事件的时候,往往会遇到不同的界面元素处理同样的事件,比如:定义一个OpenFile菜单选项用来打开一个文件,同时定义在ToolBar上定义一个按钮来打开一个文件,这两个界面元素处理相同的业务。这时候,我们可以使用Command模式来处理此类设计。在CAB中,我们可以写一个事件处理方法,将该方法绑定到多个界面元素事件处理。

[CommandHandler(“TestButtonClick”)]
public void OnTestButtonClick(object sender, EventArgs e)
{
    MessageBox.Show("Successful");
}

上述代码定义了一个Command处理方法,CommandHandler属性(Attribute)“伴随一个Command名字”,用来申明该方法是用来处理名为TestButtonClick的命令。我们可以通过下列方法将一个Command绑定到一个UIElement事件:

WorkItem.Commands[Constants.CommandNames.TestButtonClick].AddInvoker(element1, "Click");
WorkItem.Commands[Constants.CommandNames.TestButtonClick].AddInvoker(element2, "Click");

其中参数element1或element2是我们想要绑定的UIElement,比如一个Button和MenuItem。我们可以看出不同的UIElement绑定到相同的事件处理方法。

参考:Command Patter http://www.cnblogs.com/zhenyulu/articles/69858.html

没有评论: