WPF lier le titre de la fenêtre à la propriété

Je suis en train de lier la valeur d'une propriété (MyTitle) d'une classe (MainWindow) qui dérive de la Fenêtre. J'ai créé une dépendance de la propriété appelée MyTitleProperty, mis en œuvre l'interface INotifyPropertyChanged et modifié la méthode de jeu de MyTitle à l'appel de l'événement PropertyChanged, en passant "MyTitle" comme le nom de la propriété de paramètres. J'ai mis MyTitle "Titre" dans le constructeur, mais quand la fenêtre s'ouvre le titre est vide. Si j'ai mis un point d'arrêt sur l'événement Chargé alors MyTitle = "Title" mais cela.Title = "". C'est certainement quelque chose d'incroyablement évident que je ne l'ai pas remarqué. S'il vous plaît aider!

MainWindow.xaml

<Window
    x:Class="WindowTitleBindingTest.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:this="clr-namespace:WindowTitleBindingTest"
    Height="350"
    Width="525"
    Title="{Binding Path=MyTitle, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type this:MainWindow}}}"
    Loaded="Window_Loaded">
    <Grid>

    </Grid>
</Window>

MainWindow.xaml.cs:

public partial class MainWindow : Window, INotifyPropertyChanged
{
    public static readonly DependencyProperty MyTitleProperty = DependencyProperty.Register("MyTitle", typeof(String), typeof(MainWindow));

    public String MyTitle
    {
        get { return (String)GetValue(MainWindow.MyTitleProperty); }
        set
        {
            SetValue(MainWindow.MyTitleProperty, value);
            OnPropertyChanged("MyTitle");
        }
    }

    public MainWindow()
    {
        InitializeComponent();

        MyTitle = "Title";
    }

    public event PropertyChangedEventHandler PropertyChanged;

    protected void OnPropertyChanged(String propertyName)
    {
        if (PropertyChanged != null)
            PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
    }

    private void Window_Loaded(object sender, RoutedEventArgs e)
    {
    }
}
Où est votre DataContext être ensemble?
par rapport WPF nouveaux arrivants. J'ai fait un peu de liaison avant et n'a jamais eu à le définir. Suis-je suppposed le mettre? Que serais-je le régler?
Donc j'ai juste eu un coup de google et il semble que l'ajout de DataContext = ce; à mon constructeur résout mes problèmes. Merci Jeff!
Heureux de vous aider 🙂

OriginalL'auteur lace.john | 2012-03-07