我有许多从抽象基类派生的类。具体类通过引用基类存储在容器中。具体类具有许多用于绑定到FixedDocument中的页面的属性。添加其他属性而不必覆盖基本属性
我想在运行时将附加属性添加到具体类,这些属性也将绑定到FixedDocument页面。我看着装饰模式,但似乎我必须重写装饰类中的所有具体类属性,以使它们可见。是否有补充说从继承基本属性的值如下:在混凝土类派生的包装的一种方法:
class BaseClass
{
public string Name { get; set; }
}
class ConcreteClass : BaseClass
{
public int MyProperty { get; set; }
}
class ConcreteClassWrapper : ConcreteClass
{
public int AdditionalProperty { get; set; }
public ConcreteClassWrapper(ConcreteClass cc)
{
base = cc;
}
}
private static void RunTime()
{
List<BaseClass> list = new List<BaseClass>();
ConcreteClass cc = new ConcreteClass()
{
Name = "Original",
MyProperty = 5
};
list.Add(cc);
cc = new ConcreteClassWrapper(cc)
{
AdditionalProperty = 10
};
}
显然我不能只设置“基= C-C”。无论如何要实现这一目标?
看看AutoMapper – 2012-02-27 17:11:17
也许你可以修改绑定,以便它可以与不继承'ConcreteClass'的包装器一起使用,而是包含它。绑定是怎么样的? – svick 2012-02-27 17:12:44
绑定是WPF,所以我只想设置datacontext到基类,如果属性是有拿起它们,否则有空白 – 2012-02-27 17:31:29