我在代码隐藏类中有一个属性,我想绑定我的Label控件:
public MainWindow()
{
InitializeComponent();
this.Label1Content = "some text";
}
public string Label1Content { get; set; }
但绑定失败了。显然我在绑定配置中遗漏了一些东西,但我不知道是什么。我知道如何使用C#绑定此属性,但是如何使用XAML绑定它并且不声明DataContext?
答案 0 :(得分:1)
如果您不想在任何地方声明datacontext,可以使用
<Label Content="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=Window}, Path=Label1Content}" />
答案 1 :(得分: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.
}
}