我要归档的是一个类似于CompositCollection for WinRT 的类。
<ListBox Name="list" Margin="30">
<ListBox.ItemsSource>
<test:CompositeCollectionView>
<!--Using this the elements are where they belong-->
<!--<test:CompositeCollectionView.Collection>-->
<ListBoxItem Content="Value 1"/>
<test:CollectionContainer >
<ListBoxItem Content="Value 2"/>
<ListBoxItem Content="Value 3"/>
<ListBoxItem Content="Value 4"/>
</test:CollectionContainer>
<ListBoxItem Content="Value 5"/>
<!--</test:CompositeCollectionView.Collection>-->
</test:CompositeCollectionView>
</ListBox.ItemsSource>
</ListBox>
为此,我有 CompositCollectionView 类。此类实现 ObservableCollection 并具有一个属性 Collection(它本身就是一个 ObservableCollection)。添加到 Collection 的每个 Object 都将添加到 CompositeCollectionView,除非它是 CollectionContainer。如果它是一个 CollectionContainer,它的所有项目都将被添加。
CompositCollectionView 和 CollectionContainer 都具有 ObservableCollection 的属性 Collection。两者都设置了 ContentProperty。对于 CollectionContainer 这有效,对于实现 ObservableCollection 的 CompositCollectionView,项目将直接添加到 CompositCollectionView。
它使集合具有比属性更高的优先级。有没有办法改变这个?