C# 将数据从windows窗体传递到xaml.cs文件

C# 将数据从windows窗体传递到xaml.cs文件,c#,wpf,winforms,C#,Wpf,Winforms,我正在使用WPF创建我的应用程序,我正在使用formobject.Show()调用windows窗体 从xaml.cs文件 在表单中,我有接受按钮和取消按钮。如何让xaml.cs文件知道用户在表单中单击了哪个按钮。?因为执行(在#####.xaml.cs中)取决于单击的按钮 您是要执行纯确认/取消评估,还是要评估更复杂的结果?对于取消/确认,您可以使用AcceptButton和CancelButton(仅为方便起见,将Esc和Enter与按钮连接起来)和DialogResult属性按照说明进行操

我正在使用WPF创建我的应用程序,我正在使用formobject.Show()调用windows窗体 从xaml.cs文件


在表单中,我有接受按钮和取消按钮。如何让xaml.cs文件知道用户在表单中单击了哪个按钮。?因为执行(在#####.xaml.cs中)取决于单击的按钮

您是要执行纯确认/取消评估,还是要评估更复杂的结果?对于取消/确认,您可以使用AcceptButton和CancelButton(仅为方便起见,将Esc和Enter与按钮连接起来)和DialogResult属性按照说明进行操作

更复杂的结果也是以同样的方式完成的,只是您没有设置DialogResult,而是设置一个自定义属性:

public partial class Form1 : Form
{
    public string MyProperty { get; set; }

    public Form1()
    {
        InitializeComponent();
    }

    private void button1_Click(object sender, EventArgs e)
    {
        MyProperty = "Some complex result";
    }

    private void button2_Click(object sender, EventArgs e)
    {
        MyProperty = "Some other complex result";
    }
}

关闭模式对话框后,您可以轻松地使用
myWinform.MyProperty
获取XAML.cs文件中的值(实例未被释放,因为您的变量引用了它)。

我解决了它,使用了属性

this.DialogResult=DialogResult.OK在表单中

使用

if(confirm.DialogResult.ToString()=“OK”)
检查单击了哪个按钮

@塞巴斯蒂安:谢谢你的建议。

你也可以比较(confirm.DialogResult==DialogResult.OK)。以下是可能值的列表: