我有一堂课CollectionOfThings
。顾名思义,它是Thing
类实例的简单集合。 Thing
类有一个公共的默认构造函数和两个简单的公共 get、set 属性ID
和DisplayName
,它们都是字符串。 CollectionOfThing
也有公共的默认构造函数。
在 XAML 中,我想使用这样的标记:-
<Grid.Resources>
<local:CollectionOfThings x:Key="Things">
<local:Thing ID="1" DisplayName="Hello" />
<local:Thing ID="2" DisplayName="World" />
<local:CollectionOfThings>
</Grid.Resources>
只要 CollectionOfThings 派生自 Collection 类型,一切都很好。不过我CollectionOfThings
也想成为一个DependencyObject
。我认为创建ICollection<T>
, INotifyCollectionChanged
etc 的实现很好,这并不难。然后我可以从DependencyObject
.
不幸的是ICollection<T>
,由于某种原因没有削减它。随着ICollection<Thing>
我得到“CollectionOfThings 不支持将事物作为内容”。回去Collection<Thing>
,一切正常,但让我没有DependencyObject
实施。
建议任何人?