【问题标题】:How distinguish two different buttons in same event click? [duplicate]如何区分同一事件点击中的两个不同按钮? [复制]
【发布时间】:2017-06-01 08:24:03
【问题描述】:

在 WPF 上,如果我只有一个按钮单击事件共享给两个或更多(更准确地说是 52),有没有办法区分事件来自哪个按钮?

 private void Button_Card_Click(object sender, RoutedEventArgs e)
        {
            // for testing
            // it works for each button, but which one has been clicked?
            MessageBox.Show("Clicked");
        }

First button object with event set up

Second button object with event set up

【问题讨论】:

  • 两个按钮做同样事情的任何特殊原因?如果一个是菜单项,我可以理解
  • 这些按钮就像选择器,点击其中一个我会选择一些我要处理的数据
  • 欢迎来到 StackOverflow。一个简单的谷歌搜索会将您重定向到完全相同相同的旧 SO 问题。在这种情况下,不要发布其他问题,而是仔细阅读其他问题的可用答案。
  • 实际上,我期待一个替代方案来避免为每个按钮创建 52 个方法或 52 个 if 语句。但现在我意识到也许我为此使用了错误的控制,错误的方法。我可以列出可点击的控件(图像、带有图像的列表框)并使用 for 循环将对象或变量链接到它们吗?
  • @DouglasFerreira - 是的,这是个好主意。它有助于保持代码的强类型。

标签: c# .net wpf


【解决方案1】:

sender应该是被点击的按钮,还要看RoutedEventArgs.Source.OriginalSource

我还会考虑使用Commands 和CommandParameter 来指示点击了哪个。

【讨论】:

  • 不要回答明显重复旧问题的问题。而是将它们标记为重复并继续。真的,我们不需要在这个网站上大量重复答案。
猜你喜欢
  • 2018-09-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-11-30
  • 2011-02-14
相关资源
最近更新 更多