【发布时间】:2017-07-22 00:51:37
【问题描述】:
我目前正在尝试将对象的ObservableCollection(在下面的示例中:ObservableCollection<A>)分配给父类中的字段,该字段是对象实现的接口的ObservableCollection(在下面的示例:public ObservableCollection<IOrderable> childModels,其中类型A 实现IOrderable)。
这可以在下面看到:
public class A : IOrderable { }
public class B : IOrderable { }
public class Term
{
public ObservableCollection<A> aCollection { get; set; }
}
public class Year
{
public ObservableCollection<B> bCollection { get; set; }
}
public abstract class InfoListViewModelBase : ViewModelBase
{
public ObservableCollection<IOrderable> childModels { get; set; }
}
public class TermViewModel : InfoListViewModelBase
{
public TermViewModel(Term t)
{
this.childModels = t.aCollection;
}
}
public class YearViewModel : InfoListViewModelBase
{
public TermViewModel(Year y)
{
this.childModels = y.bCollection;
}
}
问题是this.childModels = t.aCollection; 和this.childModels = y.bCollection; 都不起作用,而是给出错误“无法将类型ObservableCollection<A> 隐式转换为ObservableCollection<IOrderable>”和“无法将类型ObservableCollection<B> 隐式转换为ObservableCollection<IOrderable>”
是否有正确的方法在类之间实现这种预期结果?
【问题讨论】:
标签: c# oop inheritance interface uwp