我有一个从接口实现属性的抽象基类:
public abstract class AbstractItem : IPropertyListOwner
{
public ObservableCollection<IProperty> Properties { get; }
}
我的具体类现在还需要实现具体属性:
public class ConcreteItem : AbstractItem
{
public ObservableCollection<ConcreteProperty> Properties { get; }
}
我该如何做到这一点?现在我看到以下方法:
- 只需使用单独的属性,不要使用基类中的属性
public class ConcreteItem : AbstractItem
{
public ObservableCollection<ConcreteProperty> ConcreteProperties { get; }
}
- 返回一个新的过滤 ObservableCollection
public class ConcreteItem : AbstractItem
{
public ObservableCollection<ConcreteProperty> ConcreteProperties
{
get { return new ObservableCollection<ConcreteProperty>(base.Properties.OfType<ConcreteProperty>()); }
}
}
你会怎么做?有更好的方法吗?