如何扩展现有的类,并使用其他属性,方法或函数?所以我可以在XAML代码中使用它们? 我想扩展AlavonDock库并为现有类添加更多功能。扩展现有的类,具有附加功能
这就是我的意思: AvalonDock.dll应该在类LayoutItem中包含另一个Property:SubTitle。 我不想编辑现有的类(在AvalonDock库中)。但我想创建我自己的DLL,它扩展了AvalonDock.dll的功能。
如何扩展现有的类,并使用其他属性,方法或函数?所以我可以在XAML代码中使用它们? 我想扩展AlavonDock库并为现有类添加更多功能。扩展现有的类,具有附加功能
这就是我的意思: AvalonDock.dll应该在类LayoutItem中包含另一个Property:SubTitle。 我不想编辑现有的类(在AvalonDock库中)。但我想创建我自己的DLL,它扩展了AvalonDock.dll的功能。
只是顺延类如您在其他类:
using AvalonDock; // or whatever the dll is called
public class ExtendedClass : OriginalClassToExtend
{
private string subTitle = string.Empty;
public ExtendedClass() : base()
{
// Add new functionality to constructor
}
public string SubTitle { get; set; }
}
请大家看看Inheritance (C# Programming Guide)页面上MSDN获得更多帮助。
实现自己的类,从AvalonDock
类派生并添加任何功能,你想
public class MyLayoutItem : LayoutItem
{
public string SubTitle
{
get { return (string)this.GetValue(SubTitleProperty); }
set { this.SetValue(SubTitleProperty, value); }
}
public static readonly DependencyProperty SubTitleProperty = DependencyProperty.Register("SubTitle", typeof(string), typeof(MyLayoutItem),new PropertyMetadata(string.Empty));
}
裹在你自己的班级,并实现您所希望的任何方法和属性。 – dasblinkenlight
取决于你想要扩展的类;继承,封装,装饰模式,代理模式都可以在这里有所帮助。 –