【问题标题】:generic method for collection of command buttons [closed]收集命令按钮的通用方法[关闭]
【发布时间】:2012-10-31 11:33:22
【问题描述】:

我们如何为命令按钮的集合提供单一的通用方法。我收集了 digit(0, 1,2..) 命令按钮,并且需要为所有这些按钮设置单一事件方法,因为它们具有相似的行为。

【问题讨论】:

  • 请显示您尝试过的代码
  • 您的意思是用一种方法调用每个按钮吗?比如 commandButtons1.Click += new EventHandler(object sender, EventArgs e)

标签: c# windows-phone-7


【解决方案1】:

事件委托的模式是使用两个参数。一个是发送者,另一个是事件参数。你可以根据发件人做一些事情,或者你可以在标签里放一些东西

void OnButtonClick(object sender, EventArgs e)
        {
            Button button = sender as Button;

            object data = button.Tag;
            DoSomething(data);
        }

【讨论】:

    【解决方案2】:

    您可以通过Multicast Delegates实现此目的

    1. 以这种方式定义 GenericButtonClick 事件处理程序:

      void OnGenenicButtonClick(object sender, EventArgs e)
      {
          var btn = sender as Button;
          // ... do something ...
      }
      
    2. 以这种方式分配GenericButtonClick 事件委托(比如Load 事件处理程序):

      cmdBtn1.Click += OnGenenicButtonClick;
      cmdBtn2.Click += OnGenenicButtonClick;
      //...
      

    参考:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-05-31
      • 1970-01-01
      • 2012-01-13
      • 2011-04-05
      • 2022-01-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多