Пользовательские команды WPF XAML - PullRequest
0 голосов
/ 30 апреля 2011

У меня есть пользовательский элемент управления WPF 3.5 с двумя кнопками, и я хотел бы иметь возможность привязывать команды к этим кнопкам через xaml пользовательского элемента управления.

x:Usercontrol x:Name:fou Button1Command="{Binding  StuffCommandHandler}" Button2Command="{Binding  Stuff2CommandHandler}" 

Проблема в том, что указанные выше привязкине работает.Как я могу связать команды с кнопками пользовательского элемента управления, две из них, через xaml?

Я получил это в коде UserControl позади, и я связываю Button1CommandHandler с Button1.Command

   private ICommand _button1Command;
   public ICommand Button1CommandHandler
    {
        get { return _button1Command; }
        set { _button1Command = value; }
    }

1 Ответ

3 голосов
/ 30 апреля 2011

Вы должны сделать Button1CommandHandler в свойстве зависимости:

public static readonly DependencyProperty ButtonCommandProperty =
    DependencyProperty.Register("ButtonCommand", typeof(ICommand), typeof(TwoButtons), new PropertyMetadata(default(ICommand)));

public ICommand ButtonCommand
{
    get { return (ICommand)GetValue(ButtonCommandProperty); }
    set { SetValue(ButtonCommandProperty, value); }
}

, а затем привяжите к ней Command вашей кнопки. Если вы создаете кнопку из кода, вы можете связать ее так:

button.SetBinding(Button.CommandProperty, new Binding("ButtonCommand") { Source = this });
...