Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > WPF и Silverlight > Не получается биндинг TextBox-а к свойству


Автор: V0fka 15.8.2013, 14:46
Привет!

В классе окна есть свойство Test:

Код

public string Test
        {
            get;
            set;
        }


В ХАМЛ разметке есть такое:

Код

<TextBox Text="{Binding RelativeSource={RelativeSource Mode=Self}, Path=Test, Mode=TwoWay}"/>


Есть так же в окне кнопка, по нажатию на которую выполняется код:

Код

Test = Test+"a";


Т.е. я ожидаю в TextBox-е по нажатию кнопки увидеть какой-то текст, который каждый раз будет дополняться буквой "а". Но ничего не происходит и TextBox остается пустой, хотя само свойство Test заполняется. В чем беда?

Автор: gambit 19.8.2013, 12:38
В отсутсвии реализации интерфейса INotifyPropertyChanged.
Приписываешь этот интерфейс.

Пишешь реализацию его:
Код

    #region Реализация нотифая
    public event PropertyChangedEventHandler PropertyChanged;

    public void RaisePropertyChanged(string name)
    {
        if (PropertyChanged != null)
        {
            PropertyChanged(this, new PropertyChangedEventArgs(name));
        }
    }
    #endregion


А в свойстве в сеттере, вызываешь этот метод передавая имя свойства:

Код

set
{
test = value;
RaisePropertyChanged("Test");
}

Автор: V0fka 20.8.2013, 15:33
gambit, получилось, спасибо!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)