我可以绑定到一个属性,但不能绑定到另一个属性中的一个属性。为什么不?例如
<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");