【问题标题】:How do I refresh Controls bound to a DataSource in C# User Control如何在 C# 用户控件中刷新绑定到数据源的控件
【发布时间】:2012-03-15 12:06:17
【问题描述】:

我对 Winforms 中的 DataSources 的理解有些困惑,希望有人能够为我澄清一些问题。

我有一个控件,我们称之为 Host,我还有另一个控件,叫做 Client。

“主机”包含多个“客户端”实例

客户端目前在标签中显示四个主要变量,它们绑定到每个控件的 BindingSource。

不过,我正在使用通过 LINQ 检索的数据库值从 Host 控件更新这些 BindingSource。

当我从“主机”控件更新 BindingSource 时,“客户端”控件中的值不会像我预期的那样更新。

谁能快速解释一下我需要调用的任何方法,以确保每当 BindingSource 更改时标签都会刷新为最新数据?

问候,

【问题讨论】:

    标签: c# winforms data-binding


    【解决方案1】:

    说明

    您必须实现INotifyPropertyChanged 接口。

    INotifyPropertyChanged 接口用于通知客户端(通常是绑定客户端)属性值已更改。

    样本

    public class MyClass : INotifyPropertyChanged
    {
        public event PropertyChangedEventHandler PropertyChanged;
    
        private void NotifyPropertyChanged(String info)
        {
            if (PropertyChanged != null)
            {
                PropertyChanged(this, new PropertyChangedEventArgs(info));
            }
        }
    
        private string myProperty;
        public string MyProperty
        {
            get
            {
                return this.myProperty;
            }
    
            set
            {
                if (value != this.myProperty)
                {
                    this.myProperty = value;
                    NotifyPropertyChanged("MyProperty");
                }
            }
        }
    }
    

    更多信息

    【讨论】:

    • 在哪里实施?在我的“客户端”控件上?
    • 在哪个班级?对不起,我有点困惑。
    • DataSource 是如何定义的?你有清单吗?
    • 是的,它是我的 Linq 生成的类之一的列表。
    猜你喜欢
    • 2011-08-17
    • 1970-01-01
    • 2014-06-11
    • 1970-01-01
    • 2019-06-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-29
    相关资源
    最近更新 更多