【问题标题】:Data binding in windows forms or WPF [duplicate]Windows窗体或WPF中的数据绑定[重复]
【发布时间】:2017-07-11 23:06:48
【问题描述】:

我有以下几点: private void ButtonClick(object sender, EventArgs e)

当我添加到参数列表时,要: private void ButtonClick(object sender, EventArgs e, Class c) 那么它会导致各种各样的问题。但是,我真的很想要我的主要内容:

Class c = new Class();

然后我想点击一个按钮,以便调用ButtonClick,但我确实需要访问函数体中的“类c”,所以我真的需要

private void ButtonClick(object sender, EventArgs e, Class c) 

以某种方式编译。

我已经尝试了其他方法来解决这个问题,例如将 Class 设为静态,但它会造成过多的重构并导致其他错误。

我不知道这在 Windows 窗体中是否可行。我不反对切换到 XAML 和 WPF,我只是想知道做一些诸如

private void ButtontClick(object sender, EventArgs e, Class c)  

将是可能的。

【问题讨论】:

  • 从哪里传递 Class c 的实例?
  • 与您写的标题相反,这似乎与数据绑定无关。标记的重复项回答了您编写的问题文本。在您的情况下,您可以像这样订阅Click 事件:button1.Click += (sender, e) => ButtonClick(sender, e, c);

标签: c# wpf winforms


【解决方案1】:

您可以将c 放在Button.Tag 属性中,并在点击事件处理程序中使用((Button)sender).Tag 来获取它。

【讨论】:

    【解决方案2】:

    只需将您的Class c 变量设置为您的ButtonClick 事件处理程序所在的主类中的成员变量。除非此 ButtonClick 事件处理程序是您自己的自定义事件处理程序,否则您不能为框架的 Click 事件处理程序添加更多参数以用于按钮。您必须将您的 Class c 变量作为成员变量访问,或者使用命令和带有命令参数的命令绑定。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-05
      • 2011-02-10
      • 2013-04-11
      • 2017-02-27
      相关资源
      最近更新 更多