2013-10-11 52 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