C# 在WPF中创建自定义控件时,如何克服从多个类派生的需要 我知道C++不是C++,它限制了你从多个类中派生,但是在开发WPF应用程序时,克服它的方法有哪些。
在我的场景中,我有一个第三方控件,它是一个滑块,它不是从内容控件派生的,因此没有内容属性。然而,我需要有那个财产。 我想到了几种解决办法:C# 在WPF中创建自定义控件时,如何克服从多个类派生的需要 我知道C++不是C++,它限制了你从多个类中派生,但是在开发WPF应用程序时,克服它的方法有哪些。,c#,wpf,custom-controls,derived-class,C#,Wpf,Custom Controls,Derived Class,在我的场景中,我有一个第三方控件,它是一个滑块,它不是从内容控件派生的,因此没有内容属性。然而,我需要有那个财产。 我想到了几种解决办法: 从多个类派生(在C#中不可能) 将附加属性添加到第三方控件 扩展第三方控件,并添加内容属性以及它运行所需的所有其他属性 将第三方控件封装在自定义控件中,并从内容控件派生 哪种方法是最好的?或者,如果您知道任何其他方法,请告诉我。我会选择选项3。这将允许您向第三方控件添加其他功能,而无需对其进行更新(选项2)。如果第三方提供商更新了解决方案,这将非常有用。您不
哪种方法是最好的?或者,如果您知道任何其他方法,请告诉我。我会选择选项3。这将允许您向第三方控件添加其他功能,而无需对其进行更新(选项2)。如果第三方提供商更新了解决方案,这将非常有用。您不需要重新添加更改。如果您不需要从内容控件派生控件,我不会选择选项4。这可能会让未来的开发人员感到困惑。因此,选项3似乎是最好的。我会选择选项3。这将允许您向第三方控件添加其他功能,而无需对其进行更新(选项2)。如果第三方提供商更新了解决方案,这将非常有用。您不需要重新添加更改。如果您不需要从内容控件派生控件,我不会选择选项4。这可能会让未来的开发人员感到困惑。因此,选项3似乎是最好的。选项3。。。在自定义控件上放置第三方控件的外观,该控件间接指向第三方控件的私有实例。试着在第三方控件的反汇编(使用Reflector或类似工具)中查找可以实现的接口,以帮助构建立面。选项3。。。在自定义控件上放置第三方控件的外观,该控件间接指向第三方控件的私有实例。试着在第三方控件的拆卸(使用反射器或类似工具)中查找可以实现的接口,以帮助构建立面。我赞成选项4。从长远来看,组合似乎比继承更好。稍后,您将能够用其他东西替换您的第三方控制,而无需外部世界的任何人知道更改。换句话说,您将在控件中封装对第三方控件的依赖关系。我赞成选项4。从长远来看,组合似乎比继承更好。稍后,您将能够用其他东西替换您的第三方控制,而无需外部世界的任何人知道更改。换句话说,您将在控件中封装对第三方控件的依赖。很难说。您的控件是否需要公开第三方滑块的属性?是的,它确实需要公开3d方滑块的所有属性。很难说。您的控件是否需要公开第三方滑块的属性?是的,它确实需要公开3d方滑块的所有属性。