C# 要传入构造函数的绑定方法

C# 要传入构造函数的绑定方法,c#,.net,C#,.net,我必须将方法从用户控件传递到WPF。为此,我使用委托(UserControl调用WPF,所以我不能从WPF调用UserControl) 在UserControl中: myWPF = new WPF1.UserControl1(Method1, Method2, Method3, Method4); 在WPF中: public delegate int Del1(int i) public Del1 MyMethod1; public delegate string Del2(int i) pu

我必须将方法从用户控件传递到WPF。为此,我使用委托(UserControl调用WPF,所以我不能从WPF调用UserControl)

在UserControl中:

myWPF = new WPF1.UserControl1(Method1, Method2, Method3, Method4);
在WPF中:

public delegate int Del1(int i)
public Del1 MyMethod1;
public delegate string Del2(int i)
public Del2 MyMethod2;
public delegate void Del3()
public Del3 MyMethod3;
public delegate void Del4()
public Del4 MyMethod4;

// Constructor
public UserControl1(Del1 MyMethod1, Del2 MyMethod2,Del3 MyMethod3,Del4 MyMethod4)
{
   MyMethod1 = Method1;
   MyMethod2 = Method2;
   MyMethod3 = Method3;
   MyMethod4 = Method4;
}

我有很多方法可以通过。是否可以在我拥有所有方法的情况下传递un bundle方法,而不是逐个传递?

虽然这不是您确切问题的答案,但我确实认为这是正确的答案:

看一看

简单地说,通过这种方式,您可以在接口中定义所需的方法,在单独的类中实现它们并在接口中传递。您可以在应用程序启动时注册实现接口的类(甚至可以根据上下文动态注册)。通过这种方式,定义(契约)与实现分离,从而提供了更大的灵活性和测试能力


有关更多信息,请参阅Martin Fowler关于使用某种列表的解释。列表但最好重新设计你的应用程序。@klm_+1为“更好地重新设计你的应用程序”。。。说真的,将函数传递给构造函数通常是很难的,但是传递太多以至于需要将它们包装到集合中是非常难看的。这里的实际问题是什么?为什么需要将方法传递给UserControl?您没有使用命令和MVVM吗?只需传递一个接口。。。由选项类实现,还是由构造函数帮助将一些方法绑定在一起?有点像有方法的对象吗?
列表
不会处理
无效
委托,并且对参数也不是很灵活。