C#WPF窗口,其中一个参数带有'out'

时间:2016-03-23 00:22:22

标签: c# wpf constructor

我的问题是我有一个变量需要窗口发回,所以我用它来完成这个。以下是WPF窗口的构造函数示例。

    public CustomYesNo(out bool FormFilled)
    {
        InitializeComponent();
        FormFilled = false;
    }

我遇到的问题是我想要它,因此类中的其他方法之一将能够修改发送回调用类的FormFilled变量,如下所示。

    private void Button_Yes_Click(object sender, RoutedEventArgs e)
    {
        FormFilled = true;
        Close();
    }

显然,Button_Yes_Click方法无法访问FormFilled变量,我试图弄清楚如何从此方法更改FormFilled变量的值,因为此变量仅在构造函数的范围内。我正在尝试使用'out'或者我需要走另一条路线吗?

1 个答案:

答案 0 :(得分:2)

尝试这种模式

通话方式:

class foo
{
    public void bar()
    {
        DialogForm myDialogForm = new DialogForm();
        myDialogForm.ShowDialog();
        if (myDialogForm.DialogResult)
        {
            //Its true
        }
    }

}

表单窗口:

public partial class DialogForm : Window
{
    public DialogForm()
    {
        InitializeComponent();
    }

    void submitButton_Click(object sender, RoutedEventArgs e)
    {

        this.DialogResult = true;
    }
}

WPF中的调用方法与检查结果略有不同:

bool? result = myDialogForm.ShowDialog();
if (result.HasValue && result.Value)