Удалить привязку в WPF с помощью кода - PullRequest
51 голосов
/ 09 октября 2008

Я хотел бы использовать привязку данных при отображении данных в TextBox. Я в основном делаю так:

 public void ShowRandomObject(IRandomObject randomObject) {
        Binding binding = new Binding {Source = randomObject, Path = new PropertyPath("Name")};
        txtName.SetBinding(TextBox.TextProperty, binding);
    }

Кажется, я не могу найти способ снять привязку. Я буду вызывать этот метод с множеством различных объектов, но TextBox останется прежним. Есть ли способ удалить предыдущую привязку или это делается автоматически при установке новой привязки?

Ответы [ 4 ]

89 голосов
/ 09 октября 2008

С другой стороны:

BindingOperations.ClearBinding(txtName, TextBox.TextProperty)
39 голосов
/ 09 октября 2008

при наличии

BindingOperations.ClearBinding(txtName, TextBox.TextProperty)

Для более старых версий SilverLight, но не надежно, как указано в комментариях:

txtName.SetBinding(TextBox.TextProperty, null);

Включены функции C # 6.0

this.btnFinish.ClearBinding(ButtonBase.CommandProperty);
19 голосов
/ 09 октября 2008

Как насчет:

this.ClearValue(TextBox.TextProperty);

Это намного чище, я думаю;)

0 голосов
/ 04 июня 2010

Как насчет

txtName.Text = txtName.Text;

Вам придется установить значение после его очистки в любом случае. Это работает в SL4 по крайней мере.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...