WPF绑定标签内容到属性
问题描述:
我已经阅读了几篇关于这方面的文章,并且看起来不太可能让我的标签在我的属性发生更改时进行更新。 PropertyChanged事件触发,并且属性正在更新为新文本,但标签未更新。 感谢您的帮助!WPF绑定标签内容到属性
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;
+0
我已经更新了xaml以反映这一点,并且标签仍未更新?其他建议? – Litmas
答
绑定看看DataContext的,而不是后面的代码。您可以通过将DataContext = this添加到您的代码中来使它们成为相同的东西,尽管您希望使用单独的类。
你在哪儿设置'myTaskData'?这似乎应该是你的'DataContext'而不是任务名称。 –
myTaskData在Grid.Resources部分中设置。 – Litmas