ItemsControl
,用于显示一堆矩形。每个矩形需要向上和向左偏移。因此,我创建了一个RectangleStyle
,使用绑定来设置矩形的宽度、高度、X平移和Y平移。
宽度和高度的绑定正常工作,但对于TranslateTransform
的绑定,我收到以下错误:
System.Windows.Data Error: 2 : Cannot find governing FrameworkElement or FrameworkContentElement for target element. BindingExpression:Path=Offset.X; DataItem=null; target element is 'TranslateTransform' (HashCode=16452547); target property is 'X' (type 'Double')
这是我的ItemControl
的定义:
<ItemsControl
Style="{StaticResource ItemsControlStyle}"
ItemsSource="{Binding Zones}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<Rectangle Style="{StaticResource RectangleStyle}" />
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
这里是ItemsControlStyle
的定义:
<Style x:Key="ItemsControlStyle" TargetType="ItemsControl">
<Setter Property="ItemsPanel">
<Setter.Value>
<ItemsPanelTemplate>
<Canvas />
</ItemsPanelTemplate>
</Setter.Value>
</Setter>
<Setter Property="ItemContainerStyle">
<Setter.Value>
<Style>
<Setter Property="Canvas.Left" Value="{Binding Point.X}" />
<Setter Property="Canvas.Top" Value="{Binding Point.Y}" />
</Style>
</Setter.Value>
</Setter>
</Style>
这里是RectangleStyle
的定义:
<Style x:Key="RectangleStyle" TargetType="Rectangle">
<Setter Property="Width" Value="{Binding Size.Width}" />
<Setter Property="Height" Value="{Binding Size.Height}" />
<Setter Property="RenderTransform">
<Setter.Value>
<!-- these bindings are causing the error -->
<TranslateTransform X="{Binding Offset.X}" Y="{Binding Offset.Y}" />
</Setter.Value>
</Setter>
</Style>
< p > 在 < code > RectangleStyle 的 < code > RenderTransform setter 中的两个绑定是错误的原因,但我不确定该怎么做才能解决问题。有趣的是,图形确实被正确地转换了,所以WPF能够解析这些绑定--只是出于某种原因它对它们不满意。 < p > 我该怎么办才能修复这些绑定?
编辑
我在 MS Connect 上提交了一个错误报告: