如果我将ICollection初始化为Observable集合,为什么我不能使用Observable collectio



我有一个ICollection,我想将其初始化为一个可观察的集合。

ICollection<Thing> things = new ObservableCollection<Thing>();

然后在这个可观察的集合上,我想调用.Move这样的函数,但我遇到了错误。为什么会这样?事物实际上不是一个可观察的集合吗?

您声明变量things的接口类型为ICollection<Thing>,之所以能够将其初始化为ObservableCollection<Thing>,是因为ObservableCollection<T>继承了ICollection<T>接口。

但是,通过这种方式声明它,您将只能访问ICollection<T>接口定义的成员,这意味着任何特定于ObservableCollection的成员都是不可访问的。

要改变这一点,可以这样声明things

ObservableCollection<Thing> things = new ObservableCollection<Thing>();

或使用类型铸造:

var myObservableCollection = (ObservableCollection<Thing>)things;

相关内容

  • 没有找到相关文章

最新更新