Liaison de données WPF et IValueConverter

Pourquoi est-il que lorsque j'utilise un convertisseur dans mon expression de liaison dans WPF, la valeur n'est pas mise à jour lorsque les données sont mises à jour.

J'ai une Personne simple modèle de données:

class Person : INotifyPropertyChanged
{
    public string FirstName { get; set; }
    public string LastName { get; set; }
}

Mon expression de liaison ressemble à ceci:

<TextBlock Text="{Binding Converter={StaticResource personNameConverter}" />

Mon convertisseur ressemble à ceci:

class PersonNameConverter : IValueConverter
{
    public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
    {
        Person p = value as Person;
        return p.FirstName + " " + p.LastName;
    }

    public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
    {
        throw new NotImplementedException();
    }
}

Si je la liaison de données sans convertisseur il fonctionne très bien:

<TextBlock Text="{Binding Path=FirstName}" />
<TextBlock Text="{Binding Path=LastName}" />

Ce qui me manque?

EDIT:
Juste pour clarifier un peu les choses, Joel et Alan sont corrects concernant l'interface INotifyPropertyChanged qui doit être mis en œuvre. En réalité, je dois effectivement mettre en œuvre mais cela ne fonctionne toujours pas.

Je ne peux pas utiliser de multiples éléments TextBlock parce que je suis en train de lier le Titre de la Fenêtre pour le nom complet et le Titre de la Fenêtre ne prenez pas un modèle.

Enfin, c'est une option à ajouter un composé de propriété "FullName" et de se lier à elle, mais je me demande encore aujourd'hui pourquoi la mise à jour ne se produit pas lorsque la liaison utilise un convertisseur. Même quand je mets un point d'arrêt dans le convertisseur de code, le débogueur n'est pas là quand une mise à jour est faite pour les données sous-jacentes 🙁

Grâce,
Uri

source d'informationauteur urini