0
私はUserControlを持っています。それは私がユーザーコントロールTwoWay UserControlでのデータバインド
public partial class WatermarkTextBox : INotifyPropertyChanged {
private static readonly DependencyProperty TextProperty = DependencyProperty.Register("Text", typeof(string), typeof(WatermarkTextBox), new FrameworkPropertyMetadata(default(string), FrameworkPropertyMetadataOptions.BindsTwoWayByDefault));
public WatermarkTextBox() {
this.InitializeComponent();
}
public event PropertyChangedEventHandler PropertyChanged;
public string Text {
get {
return (string)GetValue(TextProperty);
}
set {
this.SetValue(TextProperty, value);
OnPropertyChanged("Text");
}
}
[NotifyPropertyChangedInvocator]
protected virtual void OnPropertyChanged(string propertyName = null) {
PropertyChangedEventHandler handler = this.PropertyChanged;
if (handler != null) handler(this, new PropertyChangedEventArgs(propertyName));
}
の「テキスト」のセッターが呼び出されないさんし、それを結合しています(簡潔にするため削除)Adorner
<UserControl x:Class="Test.UserControlBindings"
DataContext="{Binding Mode=OneWay, RelativeSource={RelativeSource Self}}"
mc:Ignorable="d" KeyboardNavigation.TabNavigation="Cycle" x:Name="Control"
d:DesignHeight="300" d:DesignWidth="300" >
<AdornerDecorator>
<TextBox x:Name="InputTextBox" VerticalContentAlignment="Center" Text="{Binding Text, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" FontSize="{Binding ElementName=Control, Path=FontSize}"/>
</AdornerDecorator>
</UserControl>
を持つ単一のテキストボックスが含まれています。したがって、このユーザーコントロールにバインドすると、バインディングは決して更新されません。バインディングを修正するにはどうすればよいですか?