programing

코드를 사용하여 WPF에서 바인딩 제거

stoneblock 2023. 5. 14. 10:04

코드를 사용하여 WPF에서 바인딩 제거

텍스트 상자에 데이터를 표시할 때 데이터 바인딩을 사용하려고 합니다.저는 기본적으로 다음과 같은 일을 하고 있습니다.

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

제본을 풀 방법을 찾을 수 없을 것 같습니다.나는 이 메소드를 많은 다른 객체로 부를 것이지만 TextBox는 그대로 유지될 것입니다.이전 바인딩을 제거할 수 있는 방법이 있습니까? 아니면 새 바인딩을 설정하면 자동으로 수행됩니까?

또는 다음을 수행합니다.

BindingOperations.ClearBinding(txtName, TextBox.TextProperty)

사용 가능한 경우

BindingOperations.ClearBinding(txtName, TextBox.TextProperty)

이전 SilverLight 버전이지만 설명에 명시된 대로 신뢰할 수 없는 경우:

txtName.SetBinding(TextBox.TextProperty, null);

C# 6.0 기능 사용

this.btnFinish.ClearBinding(ButtonBase.CommandProperty);

어때요?

this.ClearValue(TextBox.TextProperty);

훨씬 깨끗한 것 같아요 ;)

그냥.

txtName.Text = txtName.Text;

어차피 클리어 후에 값을 설정해야 할 것입니다.이것은 적어도 SL4에서 작동합니다.

언급URL : https://stackoverflow.com/questions/186475/remove-binding-in-wpf-using-code