I was developping an application lately and I needed to bind the "Enabled" property of a ToolStripButton to my Presenter. I failed to find any "DataSource" or "DataBindings" property. I then decided to make my own button without reinventing the wheel to enable this capability.
Here's this simple class:
using System.Windows.Forms; namespace TestProject { public class ToolStripBindableButton : ToolStripButton, IBindableComponent { private ControlBindingsCollection dataBindings; private BindingContext bindingContext; public ControlBindingsCollection DataBindings { get { if(dataBindings == null) dataBindings = new ControlBindingsCollection(this); return dataBindings; } } public BindingContext BindingContext { get { if(bindingContext == null) bindingContext = new BindingContext(); return bindingContext; } set { bindingContext = value; } } } }
Once you include this simple class inside your project/solution... you can easily convert any ToolStripButton into our new ToolStripBindableButton.
And I solved my problem like this:
myBindableButton.DataBindings.Add("Enabled", myPresenter, "CanDoSomething");
very good solution, thank you.
ReplyDeletePS.
Let people comment without signing in ;)