我正在尝试创建一个ControlTemplate,它将把两个IQueryable(和其他一些东西)合并成一个CompositeCollection。
我在绑定CollectionViewSource.Source到模板时遇到了问题。看起来在资源部分中的 TemplateBinding 不支持。如何最好地规避这个限制?
代码示例如下:
页: 1
IQueryable Items1; // (DependencyProperty)
IQueryable Items2; // (DependencyProperty)
XAML (Extensible Application Markup Language):可扩展应用程序标记语言
<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>