下面代码的问题是:绑定到SomeClassProp.SubTextProp
不起作用(源属性未设置为文本框内容),而绑定到TextProp
它。
XAML:
<Window x:Class="TestWPF.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow"
Name="wMain"
SizeToContent="WidthAndHeight">
<StackPanel>
<TextBox Text="{Binding ElementName=wMain, Path=SomeClassProp.SubTextProp}" Width="120" Height="23" />
<TextBox Text="{Binding ElementName=wMain, Path=TextProp}" Width="120" Height="23" />
</StackPanel>
</Window>
和代码:
public partial class MainWindow : Window
{
public SomeClass SomeClassProp { get; set; }
public string TextProp { get; set; }
public MainWindow()
{
InitializeComponent();
SomeClassProp = new SomeClass();
}
}
public class SomeClass
{
public string SubTextProp { get; set; }
}
我在这里遗漏了一些明显的东西吗?
请注意,我需要此绑定才能从目标(文本框)到源(类属性)。
更新:当我将绑定更改ElementName=wMain
为RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type Window}}
- 两个绑定都有效。所以问题是特定于ElementName
绑定属性的。