У меня есть UserControl. Он содержит одно текстовое поле с Adorner (удалены для краткости)TwoWay DataBinding в UserControl
<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>
Я его связывание не «Текст» из 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));
}
сеттер это никогда не вызывается. Поэтому, когда я привязываюсь к этому пользовательскому элементу управления, привязки никогда не обновляются. Что я могу сделать, чтобы исправить привязку?