2017-02-22 107 views
0

我有以下数据绑定: 私人无效ButtonClick(对象发件人,EventArgs的)在Windows窗体或WPF

当我添加参数列表,使: 私人无效ButtonClick(对象发件人,EventArgs e,Class c) 那么它会导致各种问题。不过,我需要真正想在我的主:

Class c = new Class(); 

然后我想点击一个按钮,使ButtonClick叫,但我真的需要获得“C类”中的函数体,所以我真的需要

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

以某种方式编译。

我已经尝试过其他方法来解决这个问题,例如制作静态类,但是它会产生太多的重构并导致其他错误。

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

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

将成为可能。

+0

从哪里,你传递类c的实例? –

+2

与您写的标题相反,这似乎与数据绑定没有任何关系。标记的副本回答你写的问题文本。在你的情况下,你可以像这样订阅'Click'事件:'button1.Click + =(sender,e)=> ButtonClick(sender,e,c);'。 –

回答

0

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

0

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