2012-01-07 126 views
0

我有一个代码隐藏类,而我想结合我的Label控件的属性:控件绑定到该对象的代码隐藏属性

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

    public string Label1Content { get; set; } 

但结合失败。显然,我在绑定配置中缺少一些东西,但我不知道是什么。我知道如何使用C#绑定这个属性,但是如何使用XAML绑定它并且不声明DataContext?

回答

1

如果你不希望任何位置声明一个DataContext,你可以使用

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

你还是要声明一个DataContext,即使是同一控制:

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. 
    } 
} 
相关问题