使非控件组件可以模拟 Windows 窗体控件的数据绑定行为。
Binding 包含通过 BindableComponent 属性对其 IBindableComponent 所有者的引用。
Control 类会实现此接口,因此,如果可绑定组件是从 Control 继承的,则无需实现此接口。
[ToolStripItemDesignerAvailability(ToolStripItemDesignerAvailability.StatusStrip)] public class BindableToolStripStatusLabel : ToolStripStatusLabel, IBindableComponent { private BindingContext _context; public BindingContext BindingContext { get { if (null == _context) { _context = new BindingContext(); } return _context; } set { _context = value; } } private ControlBindingsCollection _bindings; public ControlBindingsCollection DataBindings { get { if (null == _bindings) { _bindings = new ControlBindingsCollection(this); } return _bindings; } set { _bindings = value; } } }
调用时:
public partial class Form1 : Form { private Binding _b; public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { _b = new Binding("Text", textBox1, "Text", true); bindableToolStripStatusLabel1.DataBindings.Add(_b); } }