INotifyPropertyChanged.PropertyChanged toujours NULL

Je sais que je fais quelque chose de mal ici, mais ce. Jetez un oeil et souligner mes erreurs.

Je vais voir "Peter" dans ma zone de texte, mais pas de "Prise" après le clic sur le bouton.

Ma classe

namespace App
{
    class Person : INotifyPropertyChanged
    {
        private string name;
        public String Name
        {
            get { return name; }
            set { name = value; OnPropertyChanged("Name"); }
        }
    public Person()
    {
        Name = "Peter";
    }

    public void SetName(string newname)
    {
        Name = newname;
    }

    public event PropertyChangedEventHandler PropertyChanged;

    private void OnPropertyChanged(string prop)
    {
        if (PropertyChanged != null)
        {
            PropertyChanged(this, new PropertyChangedEventArgs(prop));
        }
    }
}

}

Mon XAML

<Window x:Class="test.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:app="clr-namespace:App"
    Title="MainWindow" Height="400" Width="400">
<Grid>
    <Grid.Resources>
        <app:Person x:Key="person"/>
    </Grid.Resources>
    <TextBox  Width="100" Height="26" Text="{Binding Source={StaticResource person}, Path=Name, Mode=TwoWay}" />
    <Button Content="Button" Height="23"  Name="button1" VerticalAlignment="Top" Width="75" Click="button1_Click" />
</Grid>

Et mon code-behind

public partial class MainWindow : Window
{
    Person person;

    public MainWindow()
    {
        InitializeComponent();

        person = new Person();       
    }

    private void button1_Click(object sender, RoutedEventArgs e)
    {
        person.SetName("Jack");
    }
}

Grâce.

Il y a deux Personne(s). Zone de texte lié à la Personne à partir de la Grille de ressources, tandis que le Bouton définit le Nom de la Personne de domaine privé. Je pense que vous devriez utiliser une Personne comme DataContext de la Fenêtre. Cela permettra de clarifier votre code et de balisage.
Vous voudrez peut-être lire ceci & ceci, depuis que vous avez obtenu quelques confusions dans vos fixations et des ressources.

OriginalL'auteur Core-One | 2011-04-22