2009-08-22 8 views
0

ContentPresenter의 내용을 내 View Model 클래스 중 하나로 변경하려고합니다. 나는 그것을 제대로 보여줄 수 있습니다. 일단이 컨텐트 (속성)를 제 모델에서 바꾸면, Ui를 업데이트하지 않습니다.WPF 데이터 바인딩이 업데이트되지 않습니다.

다음 줄 (자동으로 데이터 컨텍스트를 설정) 각각의 UI에 내보기 모델 클래스를 링크 :

<DataTemplate DataType="{x:Type vm:WelcomePageViewModel}"> 
      <vw:WelcomePage></vw:WelcomePage> 
</DataTemplate> 

<DataTemplate DataType="{x:Type vm:UnitPageViewModel}"> 
      <vw:UnitPage></vw:UnitPage> 
</DataTemplate> 

내가 바인딩을 사용하여 UI를 보여주고 싶은 : 너무

<ContentPresenter Content="{Binding CurrentChildViewModel}" /> 

내 ViewModel 클래스, 나는 CurrentChildViewModel 프로퍼티를 가진다. 이것은 closableViewModel의 인스턴스이다. 먼저 생성자에서 할당합니다.

하지만 CurrentChildViewModel의 값을 변경하면 뷰 모델에서 속성이 변경 되어도 할당 된 첫 번째 요소는 그대로 유지됩니다.

내가 여기서 잘못하고있는 것을 볼 수 없습니다. 어쩌면 요소의 내용을 변경하는 데 올바른 아키텍처 (방법)를 사용하지 않는 것일 수 있습니다.

귀하의 도움을 많이 주시면 감사하겠습니다. 사전에 감사합니다,

보리스

답변

2

INotifyPropertyChanged을 구현해야합니다. 데이터 바인딩 프레임 워크는 바인딩에 대한 변경 사항을 지속적으로 "폴링"하지 않지만 바인딩에 대한 업데이트를 시작하기 위해 속성 변경 프레임 워크에 의존합니다.

+0

사실 내 "기본"추상 클래스는 INotifyPropertyChanged를 구현하지만 OnPropertyChange 함수를 호출하지 않았습니다. –

관련 문제