捆绑传入构造函数的方法

时间:2018-06-11 07:15:52

标签: c# .net

我必须将方法从用户控件传递给WPF。为此,我使用委托(UserControl调用WPF,所以我不能从WPF调用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方法而不是一个接一个地传递?

1 个答案:

答案 0 :(得分:1)

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

看看Dependency Injection

简单来说,这样就可以在接口中定义所需的方法,在单独的类中实现它们并传入接口。您在应用程序启动时注册哪个类实现接口(或者甚至可以基于上下文动态地)。这样定义(契约)就与实现分离,从而提供了更大的灵活性和测试能力。

有关更多信息,请查看Martin Fowler对Inversion of Control Containers and the Dependency Injection pattern

的解释