我在绑定方面遇到了问题(我知道为什么我会变成这种例外,但不知道如何解决该问题)。
我已经尝试过这段代码。
<TextBlock HorizontalAlignment="Left" >
<TextBlock.Margin>
<Thickness Left="{Binding POSX.Value, Converter={StaticResource DPIConverter}}"
Top="{Binding POSY.Value, Converter={StaticResource DPIConverter}}"/>
</TextBlock.Margin>
</TextBlock>
我遇到一个例外,它说,您无法绑定厚度[LEFT],[TOP]属性。 (例如,为什么:导致这些属性不是依赖属性)
感谢您的帮助。
编辑:如果您不明白我要达到的目标
->我想绑定页边距的左侧和顶部属性<-
答案 0 :(得分:1)
是的,您不能绑定Left,Top,right或Bottom,因为它们不是依赖项属性。它们是CLR属性。 DependencyProperty是CLR属性的包装。
定义依赖项属性的类必须从DependencyObject类继承。厚度是一个不从DependencyObject类继承的类。但是Margin是从TextBlock继承的,TextBlock是从FrameworkElement继承的,而FrameworkElement是从UIElement继承的,UIElement是从Visual继承的,Visual是从DependencyObject类继承的。
您可以绑定的是Margin,因为Margin是在FrameworkElement类中注册的依赖项属性。
您可以这样更改Xaml (示例代码)
Changed Settings-->Data Binding to "Reference code generated by the compiler" instead of "Reference code generated by Android Studio"
下面是转换器代码,我们可以在其中发送整个厚度
<TextBlock HorizontalAlignment="Left" Margin="{Binding POS, Converter={StaticResource DPIConverter}}" >