如何做一个Freezable的UserControl?

时间:2011-08-29 07:22:51

标签: c# .net wpf

我的问题是我必须从FreezeObject和UserControl派生,并且多重继承是不可能的。

1 个答案:

答案 0 :(得分:1)

实现此功能的方法之一是为第二个类继承创建一个接口。让我们说UserControl是当前的类,我们不想实现FreezeObject功能。现在我们只需添加一个界面。

IGetFreezeObject
{
    FreezeObject GetFreezeObject()
}

让UserControl实现接口,让UserControl返回一个表示UserControl的FreezeObject功能部分的对象。

我最看到的是返回的FreezeObject是一个围绕UserControl的简单包装器,它简单地将FreezeObject函数调用直接传递给UserControl函数。

如果FreezeObject实现了您需要的许多功能而不是UserControl,那么您必须检查如何在您自己的包装类中“转发”该功能。这可能不是一个简单的解决方案。