数据绑定和控件

5 .net c# data-binding winforms

我们需要在WinForms应用程序中的控件上执行以下操作。

public class BindableDataItem
{
   public bool Visible {get; set; }
   public bool Enabled {get;set;}

}
Run Code Online (Sandbox Code Playgroud)

现在我们想将BindableDataItem绑定到文本框。

这里是绑定关联。

TextBox.Enabled <==> BindableDataItem.Enabled

TextBox.Visible <==> BindableDataItem.Visible

现在,一个BindableDataItem对象可以与许多具有不同类型的控件关联。

通过调用(BindableDataItem)obj.Enabled = false,应禁用附加到BindableDataItem对象的所有控件。

任何帮助将不胜感激。

par*_*cle 2

是这样完成的

class MyDataSouce : INotifyPropertyChanged 
{
    public event PropertyChangedEventHandler PropertyChanged = delegate { };

    private bool enabled=true, visible=true;

    public bool Enabled {
        get { return enabled; }
        set {
            enabled= value;
            PropertyChanged(this, new PropertyChangedEventArgs("Enabled"));
        }

    }

    public bool Visible {
        get { return visible; }
        set {
            visible = value;
            PropertyChanged(this, new PropertyChangedEventArgs("Visible"));
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

现在将表单中的控件绑定到数据源。

MyDataSouce dataSource = new MyDataSouce();
foreach (Control ctl in this.Controls) {

    ctl.DataBindings.Add(new Binding("Enabled", dataSource, "Enabled"));
    ctl.DataBindings.Add(new Binding("Visible", dataSource, "Visible"));

}
Run Code Online (Sandbox Code Playgroud)

现在您可以启用/禁用控件,例如

dataSource.Enabled = false;
Run Code Online (Sandbox Code Playgroud)