当前位置:  开发笔记 > 编程语言 > 正文

如何刷新Windows窗体控件的简单绑定?

如何解决《如何刷新Windows窗体控件的简单绑定?》经验,为你挑选了1个好方法。

我使用以下命令将域对象属性绑定到System.Windows.Forms.Label的Text属性DataBindings:

Label l = new Label();
l.DataBindings.Add(new Binding("Text",myDomainObject,"MyProperty"));

但是,当我更改域对象时,Label不会反映更改.我知道对于像DataGridView这样的复杂控件,可以使用BindingSource完成绑定,我可以在其上调用ResetBindings,但是我找不到任何方法来在Label的简单情况下更新绑定.



1> ja72..:

肯特有正确的答案,但我想在应用INotifyPropertyChanged界面上添加一点点.

要轻松举起活动,请尝试这样做

protected void OnPropertyChanged(Expression> property)
{
    if (this.PropertyChanged != null)
    {
        var mex = property.Body as MemberExpression;
        string name = mex.Member.Name;
        this.PropertyChanged(this, new PropertyChangedEventArgs(name));
    }
}

并应用它

{ // inside some method or property setter
    OnPropertyChanged(() => this.MyProperty);
}

这比通过名称指定属性更好的唯一原因是,如果您重构,或者只是更改属性的名称,您不必手动更改实现,但可以让编译器自动重命名所有引用.

推荐阅读
放ch养奶牛
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有