我无法正确使用绑定语法来访问 MyViewModel
中的 Cats
和 Dogs
属性,在一个定义了 CompositeCollection
的 DataTemplate
内部资源中。
public class MyViewModel
{
public ObservableCollection<Cat> Cats { get; private set; }
public ObservableCollection<Dog> Dogs { get; private set; }
}
<DataTemplate DataType={x:Type local:MyViewModel}">
<DataTemplate.Resources>
<CompositeCollection x:Key="MyColl">
<!-- How can I reference the Cats and Dogs properties of MyViewModel? -->
<CollectionContainer Collection="{Binding Dogs, ????}">
<CollectionContainer Collection="{Binding Cats, ????}">
</CompositeCollection>
</DataTemplate.Resources>
<ListBox ItemsSource="{StaticResource MyColl}">
<!-- ... -->
</ListBox>
</DataTemplate>
我需要插入什么内容来绑定Dogs
和Cats
集合到CollectionContainer
中?
CollectionContainer
资源并直接使用它,而要通过CollectionViewSource
进行间接操作?2)为什么我不能声明CompositeCollection
为一个资源,并直接在内部绑定到CollectionContainer
对象?CollectionViewSource
有什么特殊之处,使得即使其他类型无法工作,它也可以在这里起作用? - Peter Duniho