2017-09-08 83 views
-3

我有兩個按鈕(添加,刪除)的用戶控件。當從主窗口訪問時,我怎麼知道哪個按鈕被點擊?如何區分哪個按鈕被用戶控件點擊?

btnAdd有一個方法,而btnDelete有另一個應該被調用的方法。

+0

您可以告訴從哪個方法被調用的更多信息。 XAML應該告訴你哪個事件被調用哪個按鈕。 –

回答

-1

如果我正確理解你的問題,你可以施放sender參數的事件處理程序:

private void Button_Click(object sender, RoutedEventArgs e) 
{ 
    Button button = sender as Button; 
    if (button.Name == "btnAdd ") 
    { 
     //add button was clicked... 
    } 
    else if (button.Name == "btnDelete") 
    { 

    } 
} 

<Button x:Name="btnAdd" Content="Add" Click="Button_Click" /> 
<Button x:Name="btnDelete" Content="Delete" Click="Button_Click" /> 
+1

如果你只是想在點擊時做完全不同的事情,那麼將相同的處理程序分配給兩個不同的按鈕是沒有意義的。 – Servy

+0

你可能不想做*完全*不同的事情。很難說OP要什麼。但是,發送發件人參數是一種「知道正在點擊哪個按鈕」的方法。 – mm8

+0

如果兩個不同的處理程序的行爲相似,則它們都可以調用某些相同的方法(或具有不同參數的相同方法)。關鍵在於,如果你想在不同的按鈕點擊時做不同的事情,你應該給他們不同的處理程序,不要給他們相同的處理程序,然後檢查按鈕,這樣你就可以做兩件不同的事情。 – Servy

0

在主窗口

的按鈕adddelete創建兩個單獨的命令你可以像這樣在userControl中綁定你的命令:

<Button Command={Binding AddCommand}/> 

並設置Mainwindowdatacontext自身內部XAML或在建築工

this.datacontext = this; 

有關如何創建命令看到thisthis