2009-08-22 5 views
0

J'essaie de changer le contenu d'un ContentPresenter en un de mes cours de modèle View. Je parviens à l'afficher correctement, une fois que je change ce contenu (propriété) de mon modèle, il ne met pas à jour l'interface utilisateur.La liaison de données WPF ne se met pas à jour

Les lignes ci-dessous un lien mon avis classes de modèle à leur ui respectif (réglage de leur contexte de données automatiquement):

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

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

Je veux montrer l'interface en utilisant la liaison:

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

Donc, dans mon Class ViewModel, j'ai une propriété CurrentChildViewModel, qui est une instance d'un modelable fermable. Je l'ai d'abord assigné dans le constructeur. Mais maintenant, quand je change la valeur de CurrentChildViewModel, il ne mettra pas à jour l'ui, même si la propriété est modifiée dans le viewmodel, le premier élément assigné restera.

Je ne vois pas ce que je fais mal ici. Peut-être que je n'utilise pas la bonne architecture (méthode) pour changer le contenu d'un élément.

Nous vous remercions de votre aide. Merci à l'avance,

Boris

Répondre

2

Assurez-vous de mettre en œuvre INotifyPropertyChanged. Le cadre de liaison de données n'interroge pas constamment les modifications apportées aux liaisons, mais s'appuie sur la structure de modification de propriété pour déclencher les mises à jour pour les liaisons.

+0

Merci, en réalité ma classe abstraite "base" implémente le INotifyPropertyChanged mais je n'ai pas appelé la fonction OnPropertyChange. –

Questions connexes