web-dev-qa-db-fra.com

Supprimer la liaison dans WPF à l'aide du code

Je voudrais utiliser la liaison de données lors de l'affichage des données dans une TextBox. Je fais essentiellement comme:

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

Je n'arrive pas à trouver un moyen de désactiver la liaison. J'appellerai cette méthode avec beaucoup d'objets différents mais la TextBox restera la même. Existe-t-il un moyen de supprimer la liaison précédente ou cela se fait-il automatiquement lorsque je configure la nouvelle liaison?

51
Robert Höglund

Alternativement:

BindingOperations.ClearBinding(txtName, TextBox.TextProperty)
90
Ed Ball

Que diriez-vous:

this.ClearValue(TextBox.TextProperty);

C'est beaucoup plus propre je pense;)

19
Arcturus

Que diriez-vous juste

txtName.Text = txtName.Text;

Vous devrez de toute façon définir la valeur après l'avoir effacée. Cela fonctionne au moins dans SL4.

0
Bodekaer