[英]WPF Binding Label Content to Property
我已经阅读了几篇有关此内容的文章,但是当属性更改时,似乎无法完全更新标签。 PropertyChanged事件正在触发,并且属性正在更新为新文本,但标签未更新。 谢谢您的帮助!
XAML
<Grid.Resources>
<c:UserInformation x:Key="myTaskData"/>
</Grid.Resources>
<Label Name="lblTaskNameTitle" Content="{Binding Path=propTaskName, UpdateSourceTrigger=PropertyChanged}"/>
窗口
UserInformation t = new UserInformation();
t.propTaskName = "Updated Task Name";
this.DataContext = t.propTaskName;
背后的代码
class UserInformation : INotifyPropertyChanged
{
private string strTaskName = "Task Name: ";
public string propTaskName
{
get { return this.strTaskName; }
set
{
this.strTaskName = value;
NotifyPropertyChanged("propTaskName"); //Call the method to set off the PropertyChanged event.
}
}
//INotifyPropertyChanged stuff
public event PropertyChangedEventHandler PropertyChanged;
private void NotifyPropertyChanged(string propertyName)
{
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
}
更新以反映评论建议。
Xaml应该是:
<Label Name="lblTaskNameTitle" Content="{Binding Path=propTaskName, UpdateSourceTrigger=PropertyChanged}"/>
UserInformation t = new UserInformation();
t.propTaskName = "Updated Task Name";
this.DataContext = t;
绑定着眼于DataContext,而不是背后的代码。 您可以通过在后面的代码中添加DataContext = this来使它们相同,尽管您希望使用单独的类。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.