我可以绑定到一个属性,但不能绑定到另一个属性内部的属性。为什么呢?例如:
<Window DataContext="{Binding RelativeSource={RelativeSource Self}}"...>
...
<!--Doesn't work-->
<TextBox Text="{Binding Path=ParentProperty.ChildProperty,Mode=TwoWay}"
Width="30"/>
<注意:我不是要做主从或任何其他事情。这两个属性都是标准的CLR属性。
更新:问题在于我的ParentProperty依赖于XAML中的一个对象被初始化。不幸的是,该对象在XAML文件中被定义在Binding之后,因此该对象在Binding读取ParentProperty时为空。由于重新排列XAML文件会破坏布局,我唯一想到的解决办法是在代码后台中定义绑定:
<TextBox x:Name="txt" Width="30"/>
// after calling InitializeComponent()
txt.SetBinding(TextBox.TextProperty, "ParentProperty.ChildProperty");