我正在尝试创建一个ControlTemplate,它将2个IQueryables(以及其他一些东西)合并到CompositeCollection中。
我在使CollectionViewSource.Source正确绑定到模板时遇到问题。看起来不支持参考资料部分中的TemplateBinding。解决这个限制的最佳方法是什么?
代码示例如下:
- C#
IQueryable Items1; // (DependencyProperty)
IQueryable Items2; // (DependencyProperty)
- XAML
<ControlTemplate TargetType="{x:Type Components:Selector}">
<ControlTemplate.Resources>
<!-- The two bound properties below fail to bind -->
<CollectionViewSource Source="{Binding Items1,RelativeSource={RelativeSource TemplatedParent}}" x:Key="Items1Key" />
<CollectionViewSource Source="{Binding Items2, RelativeSource={RelativeSource TemplatedParent}}" x:Key="Items2Key" />
<CompositeCollection x:Key="collection">
<CollectionContainer Collection="{Binding Source={StaticResource Items1Key}}" />
<CollectionContainer Collection="{Binding Source={StaticResource Items2Key}}" />
</CompositeCollection>
</ControlTemplate.Resources>
<ComboBox ItemsSource="{Binding Source={StaticResource collection}}" />
</ControlTemplate>