假设我对readonly Items
集合有一些控制权。我可以使用集合语法初始化此集合:
<Something>
<Something.Items>
<Item />
<Item />
</Something.Items>
</Something>
假设现在我有资源集合,并希望用它初始化我的控件:
<Window.Resources>
<ItemCollectionClass x:Key="collection">
<Item />
<Item />
</ItemCollectionClass>
</Window.Resources>
怎么做? <Something Items="{StaticResource collection}" />
不起作用,因为它试图设置集合实例,而不是初始化它。
答案 0 :(得分:2)
您可以使用ObjectDataProvider初始化集合:
<Window.Resources>
<ItemCollectionClass x:Key="collection">
<Item />
<Item />
</ItemCollectionClass>
<ObjectDataProvider x:Key="..." ObjectType="{x:Type local:Something}">
<ObjectDataProvider.ConstructorParameters>
<StaticResource ResourceKey="collection" />
</ObjectDataProvider.ConstructorParameters>
</ObjectDataProvider>
</Window.Resources />