我有一个ControlTemplate
我想在其中接收两个集合并将它们组合成一个集合,然后将其绑定到一个ItemsControl
。计算由对象完成,我在模板中Calculator
创建一个实例。ResourceDictionary
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type local:IndicatorBar}">
<ControlTemplate.Resources>
<local:Calculator
x:Key="_calculator"
Ranges="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=Ranges}"
DataSource="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=DataSource}" />
</ControlTemplate.Resources>
<ItemsControl ItemsSource="{Binding Ratios, Source={StaticResource _calculator}}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<Border Background="{Binding Range}">
<TextBlock Text="{Binding Ratio}" Foreground="White" />
</Border>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</ControlTemplate>
</Setter.Value>
</Setter>
但是,这似乎不起作用并导致绑定错误:
System.Windows.Data 错误:2:找不到目标元素的管理 FrameworkElement 或 FrameworkContentElement。
绑定表达式:路径=范围;数据项=空;目标元素是“计算器”(HashCode=33746798);目标属性是“范围”(类型“范围”)
System.Windows.Data 错误:2:找不到目标元素的管理 FrameworkElement 或 FrameworkContentElement。
绑定表达式:路径=数据源;数据项=空;目标元素是“计算器”(HashCode=33746798);目标属性是“数据源”(类型“IEnumerable”)
我不确定如何解决这个问题,所以任何帮助将不胜感激!