코드를 사용하여 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
'programing' 카테고리의 다른 글
방법? 매개 변수 및 LIKE 문 SQL (0) | 2023.05.14 |
---|---|
Azure 키 볼트: 액세스 거부됨 (0) | 2023.05.14 |
병합 충돌을 해결한 후 병합을 완료하려면 어떻게 해야 합니까? (0) | 2023.05.14 |
__file__이(가) 주피터 노트북에 없습니다. (0) | 2023.05.14 |
이상한 SQL 화학 오류 메시지:유형 오류: 'dict' 개체가 인덱싱을 지원하지 않습니다. (0) | 2023.05.14 |