2009-08-22 16 views
0

ContentPresenterのコンテンツを自分のView Modelクラスの1つに変更しようとしています。私はそれを正しく表示することができます。一度私のモデルからこのコンテンツ(プロパティ)を変更すると、それは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クラス、私は、closableViewModelのインスタンスであるCurrentChildViewModelプロパティを持っています。私はまずそれをコンストラクタに割り当てます。

しかし、現在のCurrentChildViewModelの値を変更すると、プロパティがビューモデル内で変更されても、割り当てられた最初の要素はそのまま残ります。

私はここで間違っているのか分かりません。おそらく、私は要素の内容を変更するために正しいアーキテクチャ(方法)を使用していないでしょう。

あなたの助けに感謝します。事前に おかげで、

ボリス

答えて

2

INotifyPropertyChangedを実装することを確認します。データバインディングフレームワークは、バインディングの変更を常に「ポーリング」するのではなく、プロパティ変更フレームワークを使用してバインディングの更新を起動します。

+0

実際、私の "基本"抽象クラスはINotifyPropertyChangedを実装していますが、私はOnPropertyChange関数を呼び出さなかったのです。 –

関連する問題