WPF样式的绑定导致无法解释&&;找不到管理框架元素&;q;错误 [英] Binding in WPF style causes inexplicable "Cannot find governing FrameworkElement" error
本文介绍了WPF样式的绑定导致无法解释&&;找不到管理框架元素&;q;错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个ItemsControl
,它显示一串矩形。每个矩形需要向上和向左偏移。因此,我创建了一个RectangleStyle
,它使用绑定来设置矩形的宽度、高度、X平移和Y平移。
宽度和高度绑定工作正常,但TranslateTransform
绑定出现以下错误:
System.Windows.Data错误:2:找不到目标元素的管理FrameworkElement或FrameworkContent Element。BindingExpression:Path=Offset.X;DataItem=NULL;目标元素为‘Transform’(哈希码=16452547);目标属性为‘X’(类型为‘Double’)
以下是MyItemControl
的定义:
<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>
RectangleStyle
的RenderTransform
setter中的两个绑定是错误的原因,但我不确定如何解决该问题。有趣的是,图形正在被正确转换,因此WPF能够解析绑定--它只是出于某种原因对它们不满意。
我可以做些什么来修复绑定?
编辑
我在MS Connect上提交了错误报告:
推荐答案
我也无法解释为什么会出现错误消息,但我发现向转换添加x:Name属性是消除错误消息的一种方法:
<TranslateTransform x:Name="myTransform" X="{Binding Offset.X}" Y="{Binding Offset.Y}" />
这篇关于WPF样式的绑定导致无法解释&&;找不到管理框架元素&;q;错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文