Не работает привязка для TextBox

110
16 января 2021, 10:20

Делаю TextBox:

XAML:

<TextBox Text="{Binding FilterValue}"/>

C#:

public string FilterValue { get; set; } = "";

Когда я меняю FilterValue в коде, то на форме он тоже меняется, но когда ввожу текст в форму, то FilterValue в коде не обновляется, в чем дело?

P.S. Использую Fody

Answer 1

Класс, к свойству которого осуществляется привязка, должен реализовывать интерфейс INorifyPropertyChanged.

public class Test : INotifyPropertyChanged
{
    private filterValue;
    public string FilterValue
    {
        get
        {
            return filterValue;
        }
        set
        {
             filterValue = value;
             PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("FilterValue"));
        }
    }
    public event PropertyChangedEventHandler PropertyChanged;
}

Если класс, к свойству которого осуществляется привязка, не реализует этот интерфейс, то все привязки будут осуществлены как OneTime. Кроме того, настоятельно рекомендую полностью расписывать привязки, указывая режим явно. В вашем случая я бы использовал такой binding, {Binding Path=FilterValue, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}, более продробно написано тут

READ ALSO
Бинарная сериализация COM-объектов

Бинарная сериализация COM-объектов

Как правильно перевести в массив байт COM-объект и/или объекты, к классам которым нельзя получить доступ и поставить им атрибут Serializable (например,...

143
Работа с картами и GPS на сайте

Работа с картами и GPS на сайте

Есть сайт написанный на ASPNET MVC

140
AngleSharp не удается получить данные сайта

AngleSharp не удается получить данные сайта

Простейший пример, взят с сайта библиотеки

130