2011-04-30 85 views
0

我有一個3.5 WPF用戶控件,帶有兩個按鈕,我希望能夠通過用戶控件的xaml將命令綁定到這些按鈕。WPF用戶控件XAML命令

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

問題是上述綁定不起作用。 如何通過xaml將命令綁定到用戶控件的按鈕,其中兩個按鈕?

我有了這個在用戶控件的代碼後面,我綁定Button1CommandHandler到Button1.Command

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

回答

3

你必須要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 }); 
+0

更好的工作,Button1.Command = ButtonCommand但在創建控制這是可以理解ButtonCommand爲空。但是,當xaml綁定發生時,Buttoncommand集不會被觸發,所以當單擊hte按鈕時,StuffCommandHandler永遠不會被觸發。我錯過了什麼? – mike 2011-04-30 18:01:06

+0

我放了ButtonCommand的一個斷點,它永遠不會觸發 – mike 2011-04-30 18:16:46

+0

您必須*將* Button1.Command綁定到'ButtonCommand'。 – svick 2011-04-30 18:55:39