Привязка работает только при запуске программы

Рейтинг: 0Ответов: 0Опубликовано: 25.04.2023

Значение свойства Text меняется только один раз - при запуске программы. Далее оно остается таким же, как при запуске. как привязать TextBox к Text так, чтобы Text всегда был равен тексту внутри TextBox?

<UserControl x:Class="prod_bw.Ctrls.UpDownCtrl"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
             xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
             xmlns:local="clr-namespace:prod_bw.Ctrls"
             mc:Ignorable="d" d:DesignWidth="800" Height="22"
             d:DataContext="{d:DesignInstance local:UpDownCtrl,IsDesignTimeCreatable=False}">
    <StackPanel Orientation="Horizontal" Height="22">
        <TextBox x:Name="value" Width="32" Text="{Binding Text, Mode=TwoWay}" MaxLength="3" /> <!-- * -->
    </StackPanel>
</UserControl>
namespace prod_bw.Ctrls
{
    /// <summary>
    /// Логика взаимодействия для UpDownCtrl.xaml
    /// </summary>
    public partial class UpDownCtrl : UserControl, INotifyPropertyChanged
    {
        private static readonly Regex onlyNumberRegex = new Regex("[^0-9]");

        public event PropertyChangedEventHandler PropertyChanged;

        public string Text { get; set; } // *

        public UpDownCtrl()
        {
            InitializeComponent();
            DataContext = this;
        }

        public void OnPropertyChanged([CallerMemberName] string prop = "")
        {
            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(prop));
        }
    }
}

Ответы

Ответов пока нет.