2つのテキストボックスtxt1
と1つtxt2
の文字列依存関係プロパティがありますsprop
。
public static readonly DependencyProperty spropProperty = DependencyProperty.Register("sprop", typeof (string), typeof (MainWindow), new UIPropertyMetadata(string.Empty));
public string sprop
{
get { return (string) this.GetValue(spropProperty); }
set { this.SetValue(spropProperty, value); }
}
txt1
ここで、このようにXAMLでデータバインディングを設定すると、次のようになります。
Text="{Binding sprop, ElementName=window, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}
txt1
sprop
テキストボックスのテキストが変更されるたびに、瞬時に更新されます。
しかし、txt2
このようにC#でデータバインディングを設定すると、次のようになります。
DataContext = this;
txt2.SetBinding(TextBox.TextProperty, "sprop");
その後、フォーカスを失ったときにのみtxt2
更新されます。sprop
C#コードを使用してテキストが変更sprop
されたらすぐに更新するにはどうすればよいですか?txt2
私が試したこと:
DataContext = this;
var myBinding = new Binding("sprop");
myBinding.Source = this;
myBinding.UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged;
txt2.SetBinding(TextBlock.TextProperty, myBinding);