繁体   English   中英

WPF将标签内容绑定到属性

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM