다음 마크 업이 있습니다.
<TextBox x:Name="Address"
Text="{Binding
Source={x:Static local:MainWindow.Boundie},
Path=SomeProp,
Mode=TwoWay}">
</TextBox>
뒤에있는 코드에는 이와 같은 정적 속성이 있습니다.
Boundie = new Something { SomeProp = "old" };
static Something Boundie { get; set; }
public class Something { public String SomeProp { get; set; } }
데이터 바인딩 된 텍스트 상자와 중단 점에 "new"를 입력하면 속성의 속성이 변경 될 것으로 예상했습니다. 사실이 아닙니다. 모드 를 잘못 사용 하고 있습니까? 아니면 TwoWay로 설정하는 것 외에 다른 작업이 필요 합니까? 아니면이 경우 접근 방식이 모두 부적절합니까?
방금 업데이트해야하는 경우 에서 GUI를 에 데이터 객체 구현 INotifyPropertyChanged
그것을하는 것은 필수가 아닙니다. Sonhja가 제안했듯이 Boundie 속성 초기화를 올바른 지점에 배치하는 것이 중요합니다. 따라서 Boundie = new Something { SomeProp = "old" };
정적 생성자에 삽입 하거나 InitializeComponent();
호출 직전에 (공용 생성자에) 삽입해야합니다 .
이유는 간단하다 : 당신이 경우 Boundie = new Something { SomeProp = "old" };
후InitializeComponent();
호출, 바인딩이 이미 (그 순간에 널 (null) 임) Boundie 속성 값을 읽기 위해 노력하고 있습니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다