如何使用其他属性、方法或函数扩展现有类?这样我就可以在 XAML 代码中使用它们了吗?我想扩展 AlavonDock 库并向现有类添加更多功能。
这正是我的意思:AvalonDock.dll 应该在类 LayoutItem 中包含另一个属性:SubTitle。我不想编辑现有的类(在 AvalonDock 库中)。但我想创建自己的 dll 来扩展 AvalonDock.dll 的功能。
如何使用其他属性、方法或函数扩展现有类?这样我就可以在 XAML 代码中使用它们了吗?我想扩展 AlavonDock 库并向现有类添加更多功能。
这正是我的意思:AvalonDock.dll 应该在类 LayoutItem 中包含另一个属性:SubTitle。我不想编辑现有的类(在 AvalonDock 库中)。但我想创建自己的 dll 来扩展 AvalonDock.dll 的功能。
实现您自己的从类派生的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));
}
只需像扩展任何其他类一样扩展相关类:
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 上的Inheritance (C# Programming Guide)页面以获取更多帮助。