将属性添加到非用户定义的类

时间:2011-05-11 05:02:21

标签: c# inheritance dynamic polymorphism

我们一直使用控件,例如按钮,有时我们可能想要为该按钮添加一些自定义属性。例如numberOfTimesClicked等。我目前正在使用GridViewColumnHeader,我想将属性columnIndex添加到该类。我知道我可以用其他方法跟踪列,但我只是想知道我们是否可以为类添加额外的属性。例如,我在考虑继承。如果我创建一个新类并从我想要添加新属性的类继承(在我的情况下是GridViewColumnHeader),那么我认为这应该可行,但出于某种原因,每当我执行类似的操作时,我的代码都会出错:

private class MyGridViewColumnHeader : GridViewColumnHeader
{
    public int propertyThatIWantToAdd { get; set; }
}

从现在开始,如果我从MyGridViewColumnHeader类而不是GridViewColumnHeader类实例化对象,我会收到错误。使用继承来实现这个有什么问题?

2 个答案:

答案 0 :(得分:0)

您应该创建类publicprivate修饰符仅允许用于内部类。

如果要在XAML中访问该属性,也应该使用Dependency Properties而不是普通的属性。

答案 1 :(得分:0)

而不是使用<{1}}对象

sender

在这个对象上做你的工作。如果您需要知道e.OriginalSource as MyGridViewColumnHeader 内的内容,请查看MSDN