DependencyObject から派生し、いくつかの DependencyProperties を実装するオブジェクトがあります。
基本的には次のようなものです:
class Context : DependencyObject {
public static readonly DependencyProperty NameProperty =
DependencyProperty.Register ("Name", typeof (string), typeof (Context), new PropertyMetadata (""));
public string Name {
get {
return (string)this.GetValue (NameProperty);
}
set {
this.SetValue (NameProperty, value);
}
}
}
これは機能し、プロパティはセットアップされ、バインドできます。問題は、TwoWay バインドを使用して WPF からプロパティにバインドするときに発生します。TwoWay 部分が実際に発生することはなく、WPF がこのプロパティのセットを呼び出すことはありません。バインディングを次のように設定しました。
<TextBox Text="{Binding Path=Name, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />
この場合、テキスト ボックスに入力するとすぐに Name プロパティが更新されますが、更新されません。Name プロパティを通常の POCO プロパティに変更すると、機能します (ただし、INotifyPropertyChanged を実装しない限り、TwoWay の反対側は機能しません)。
ここで何が間違っていますか?これは本当に簡単なことですが、頭痛の種は尽きません。