У меня есть пользовательский элемент управления со свойством Text, которое должно быть двусторонне связано со свойством контекста данных.
Привязка происходит только в начале (я думаю, единовременно), но не реагирует ни на какие изменения текста.
мой пользовательский элемент управления:
public sealed class MyTextControl : Control
{
public static readonly DependencyProperty TextProperty = DependencyProperty.Register(
"Text", typeof(string), typeof(MyTextControl), new PropertyMetadata(default(string)));
public string Text
{
get => (string)GetValue(TextProperty);
set => SetValue(TextProperty, value);
}
public MyTextControl()
{
DefaultStyleKey = typeof(MyTextControl);
}
}
шаблон управления:
<Style TargetType="local:MyTextControl">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="local:MyTextControl">
<Border
Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}">
<TextBox
BorderBrush="Black"
BorderThickness="1"
Text="{Binding Text, RelativeSource={RelativeSource TemplatedParent}}" />
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
я звоню в управление:
<StackPanel HorizontalAlignment="Center" VerticalAlignment="Center">
<myTextControl:MyTextControl
Width="500"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Text="{x:Bind Greeting, Mode=TwoWay}" />
<Button
Margin="50"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Content="Submit" />
</StackPanel>
Приветствие - это DP в коде, установленном для Hello World!
Я ожидаю достижения точки останова в Приветствии или Изменения текста в тексте, но это не так.
Похоже, двусторонняя привязка не работает хорошо.
Что-нибудь отличается от WPF? Как я могу заставить это работать?