Alex Rivera | Logout

WPF: Binding to commands in code behind

Asked 2010-06-17T08:09:38.417
15

I have a WPF Microsoft Surface Application and I'm using MVVM-Pattern.

I have some buttons that are created in code behind and I would like to bind commands to them, but I only know how that works in the XAML

like this:

<Custom:SurfaceButton Command="{Binding SaveReservationCommandBinding, Mode=OneWay}"/> 

But I cannot do it like this because my buttons do not exist in the XAML, only in the code behind.

So how would a command binding like that works in code behind?

Edit
Report

1 Answer

6

I took the code from the link posted by Anvaka as template. I use RadMenuItem of Telerik, but surely you can use any other component that expose Command property.

item = new RadMenuItem();
item.Header = "Hide Column";
DependencyProperty commProp = RadMenuItem.CommandProperty;
if (!BindingOperations.IsDataBound(item, commProp)) {
  Binding binding = new Binding("HideColumnCommand");
  BindingOperations.SetBinding(item, commProp, binding);
}
//this is optional, i found easier to pass the direct ref of the parameter instead of another binding (it would be a binding to ElementName).
item.CommandParameter = headerlCell.Column;
menu.Items.Add(item);

Hope it helps ... and if something is not clear, sorry, it's my first post :)

answered 2012-09-12T09:32:16.200

Your Answer