Wpf 将控件绑定到此对象的代码隐藏属性

Wpf 将控件绑定到此对象的代码隐藏属性,wpf,xaml,binding,controls,Wpf,Xaml,Binding,Controls,我想将Label控件绑定到代码隐藏类中的一个属性: public MainWindow() { InitializeComponent(); this.Label1Content = "some text"; } public string Label1Content { get; set; } 但是绑定失败了。显然,我在绑定配置中遗漏了一些东西,但我不知道是什么。我知道如何使用C#绑定此属性,但如何使用XAML绑定它而不声明

我想将Label控件绑定到代码隐藏类中的一个属性:

    public MainWindow()
    {
        InitializeComponent();
        this.Label1Content = "some text";
    }

    public string Label1Content { get; set; }


但是绑定失败了。显然,我在绑定配置中遗漏了一些东西,但我不知道是什么。我知道如何使用C#绑定此属性,但如何使用XAML绑定它而不声明DataContext?

如果您不想在任何地方声明DataContext,可以使用

<Label Content="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=Window}, Path=Label1Content}" />

您仍然必须声明一个
数据上下文,即使它是同一个控件:

public MainWindow()
{
    InitializeComponent();

    DataContext = this;

    this.Label1Content = "some text";
}
此外,该控件必须实现
INotifyPropertyChanged
,以便您可以引发
PropertyChanged
事件。您的财产应该是独立的,如下所示:

public string _lable1Content;
public string Label1Content
{
    get { return _label1Content; }
    set
    {
        if (Equals(value, _label1Content)) return;

        _label1Content = value;

        //However you decide to implement the RaisePropertyChanged method.
    }
}