2013-10-11 53 views
0

我有一個WPF應用程序,其中MainWindow.xaml有兩個按鈕在點擊時調用通用對話框。以下是代碼片段:訪問按鈕稱爲通用對話框的名稱

<Button Name="Button1" Content="Save 1" Click="Button1_Click"/> 
<Button Name="Button2" Content="Save 2" Click="Button2_Click"/> 

Button1_Click和Button2_Click在單擊時調用SaveDialog.xaml。在此對話框中有一個按鈕OK:

<Button Name="OKBtn" Content="OK" Click="OKBtn_Click"/> 

SaveDialog.xaml.cs的代碼片段如下。

private void OKBtn_Click(object sender, RoutedEventArgs e) 
    { 
     //Access Button Name from Main Window that called this dialog and store it in a string 

    } 

有人可以幫我從調用這個SaveDialog SaveDialog.xaml.cs的OK按鈕,單擊事件裏面的主窗口訪問按鈕的名稱。我嘗試過,但從未得到過解決方案。獲取按鈕的名稱對我來說非常重要。組合保存按鈕是不可能的,因爲它們具有不同的功能,但它們調用相同的對話框。

+0

您需要添加屬性SaveDialog .xaml.cs,您可以使用它來指示使用哪個按鈕來顯示此對話框。 – ColinE

+0

你能分享爲什麼你要在OKBtn_Click保存按鈕名稱?將有更好的方式來實現你想要做的 – Nitin

+0

Dear nit,基於按鈕名稱,SaveDialog將不得不將某些文件保存在不同的位置。我不允許爲此分開對話。我嘗試將MainWindow的位置傳遞給此對話框失敗。這就是爲什麼我想在SaveDialog.xaml.cs中存儲路徑位置並基於按鈕名稱,將文件保存到其適當的位置。 – user2869663

回答

0

更簡單的方法做,這是設置一個的UID給你的按鈕,例如:

<Button Name="Button1" Uid="000" Content="Save 1" Click="Button1_Click"/> 
<Button Name="Button2" Uid="111" Content="Save 2" Click="Button2_Click"/> 

然後在OKBtn_Click事件中,你可以這樣做:

private void OKBtn_Click(object sender, RoutedEventArgs e) 
    { 
     Button b = Ctype(sender, Button) 
     If(b.Uid = "000") { 
      SaveFile; 
     } 
     Else{ 
      SaveOtherFile; 
     } 
    } 
+0

這確實是一個出色而簡單的解決方案!謝謝亞歷山大。 – user2869663