Skip to content

Instantly share code, notes, and snippets.

@mika76
Forked from opavlyshak/BarButtonItemBinder.cs
Created November 17, 2013 20:01
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mika76/7517567 to your computer and use it in GitHub Desktop.
Save mika76/7517567 to your computer and use it in GitHub Desktop.
using System;
using System.ComponentModel;
using System.Windows.Forms;
using DevExpress.XtraBars;
namespace BarButtonItemDataBindingExample
{
internal sealed class BarButtonItemBinder : IBindableComponent
{
private readonly BarButtonItem barButtonItem;
private BindingContext bindingContext;
private ControlBindingsCollection dataBindings;
public event EventHandler Disposed;
[Bindable(BindableSupport.Yes, BindingDirection.TwoWay)]
public bool Enabled
{
get { return barButtonItem.Enabled; }
set { barButtonItem.Enabled = value; }
}
public ISite Site { get; set; }
public ControlBindingsCollection DataBindings
{
get { return dataBindings ?? (dataBindings = new ControlBindingsCollection(this)); }
}
public BindingContext BindingContext
{
get { return bindingContext ?? (bindingContext = new BindingContext()); }
set { bindingContext = value; }
}
public BarButtonItemBinder(BarButtonItem barButtonItem)
{
this.barButtonItem = barButtonItem;
}
public void Dispose()
{
var handler = Disposed;
if (handler != null)
{
handler(this, EventArgs.Empty);
}
}
}
}
new BarButtonItemBinder(barButtonItem).DataBindings.Add(
"Enabled",
viewModel,
"CanExecute");
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment