扩展具有附加功能的现有类

本文关键字:功能 扩展 | 更新日期: 2023-09-27 18:33:38

如何使用其他属性、方法或函数扩展现有类?以便我可以在 XAML 代码中使用它们?我想扩展 AlavonDock 库并为现有类添加更多功能。

这正是我的意思:AvalonDock.dll 应该在类 LayoutItem 中包含另一个属性: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; }
}

请查看 MSDN 上的继承(C# 编程指南)页面以获取更多帮助。

实现你自己的类,该类派生自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));
}