以下のコードの問題は、 to へのバインドがSomeClassProp.SubTextProp
機能しない (ソース プロパティがテキスト ボックスのコンテンツに設定されていない) のに対し、 toは機能する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
したがって、問題はバインディング プロパティに固有のものです。