일부 조건에서 상수를 반환하는 뷰 모델의 속성이 있습니다. 이와 비슷한 구현Wpf 텍스트 상자가 뷰 모델에서 업데이트되지 않았습니다.
:
class Tmp : INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
public String Text
{
get { return "testing"; }
set
{
PropertyChanged(this,new PropertyChangedEventArgs("Text")); }
}
}
때문에 반환 "테스트"alwasys 속성 텍스트입니다. 응용 프로그램이 시작되면, 텍스트 상자 correclty 테스트를 말한다
<TextBox Text="{Binding Path=Text, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"/>
:
나는 텍스트 상자 등을이 바인딩.이제 Setter가 호출되는 텍스트 상자에 무언가를 입력하면 PropertyChanged가 호출됩니다.
이 후 (GUI 일 가능성이 있음) getter를 호출하고 "testing"값을 얻습니다.
그러나 텍스트 상자의 텍스트는 다시 테스트로 변경되지 않습니다.
그래서 "abc"를 텍스트 상자에 입력 할 수 있으며 모델에 "테스트"가 저장되어 있어도 텍스트 상자에 "abc"가 표시됩니다.
텍스트 상자의 텍스트가 각 키 입력시 "테스트"로 재설정되지 않는 이유는 무엇입니까?
IIRC 빈 문자열 대신 propertychanged 이벤트를 통해 속성 이름을 전달해야합니까? –
String.Empty 또는 ""는 "이 속성은 모두 유효하지 않습니다. 모두 가져 오십시오"라는 의미입니다.이 경우에는 "텍스트를 잘 가져옵니다"라는 의미입니다. – dowhilefor
빈 스팅은 모든 것을 강제 업데이트해야합니다. 원래 속성 이름을 변경했습니다. " –