C# 在高级设置中保存过滤器

C# 在高级设置中保存过滤器,c#,wpf,C#,Wpf,我有一个WPF的主窗口。如果单击按钮,则执行以下代码: private void buttonAdvSett_Click(object sender, RoutedEventArgs e) { AdvancedSettingsWindow advancedSettingsPopup = new AdvancedSettingsWindow(); advancedSettingsPopup.ShowDialog(); } 一扇新窗户正在打开。在这个窗口中,我设置了一些过滤器(通过

我有一个WPF的主窗口。如果单击按钮,则执行以下代码:

private void buttonAdvSett_Click(object sender, RoutedEventArgs e)
{
    AdvancedSettingsWindow advancedSettingsPopup = new AdvancedSettingsWindow();
    advancedSettingsPopup.ShowDialog();
}
一扇新窗户正在打开。在这个窗口中,我设置了一些过滤器(通过组合框)。我想保存组合框中的字符串,如果我点击一个“OK”按钮

我希望你能帮助我。 对不起,我的英语不好。英语不是我的母语

祝你今天愉快

嫉妒6

更新:

这也对我起了作用: 在高级设置Swindow中:

private void button_Click(object sender, RoutedEventArgs e)
        {
            Foo();
            this.Close();
        }

public event Action<string> Check;

public void Foo()
        {
            if(Check != null)
            {
                Check(methodINeedInMyMainWindow());
            }
        }

来源:

您的
主窗口
按钮方法应该如下所示:

    private void button_Click(object sender, RoutedEventArgs e)
    {
        AdvancedSettingsWindow newPopupWindow = new AdvancedSettingsWindow();
        newPopupWindow.ShowDialog();
        if(newPopupWindow.DialogResult == true && newPopupWindow.TestCheckBox.IsChecked == true)
        {
            string str = newPopupWindow.TestCheckBox.Content.ToString();
            //str contains the text in the checkbox
        }

    }
您的
高级设置Swindow
确定按钮应如下所示:

    private void button_Click(object sender, RoutedEventArgs e)
    {
        DialogResult = true;
        Close();
    }

显然,这假设您只有一个复选框,因此您必须稍微扩展该方法,但这比使用公共属性更有效。

您的
main窗口
按钮方法应该如下所示:

    private void button_Click(object sender, RoutedEventArgs e)
    {
        AdvancedSettingsWindow newPopupWindow = new AdvancedSettingsWindow();
        newPopupWindow.ShowDialog();
        if(newPopupWindow.DialogResult == true && newPopupWindow.TestCheckBox.IsChecked == true)
        {
            string str = newPopupWindow.TestCheckBox.Content.ToString();
            //str contains the text in the checkbox
        }

    }
您的
高级设置Swindow
确定按钮应如下所示:

    private void button_Click(object sender, RoutedEventArgs e)
    {
        DialogResult = true;
        Close();
    }

显然,这假设您只有一个复选框,因此您必须稍微扩展该方法,但这比使用公共属性更有效。

为什么不将这些值公开为窗口的属性?然后,您可以在窗口关闭后访问它们。您也可以通过“确定”按钮或“取消”按钮等来存储窗口是否关闭。保存是什么意思?您想将其保存到内存中,以便在应用程序中的任何位置都可以使用,还是想将其保存到文件中,以便在应用程序启动时加载?为什么不将这些值作为窗口的属性公开?然后,您可以在窗口关闭后访问它们。您也可以通过“确定”按钮或“取消”按钮等来存储窗口是否关闭。保存是什么意思?您想将其保存到内存中,以便在应用程序中的任何位置都可以使用它,还是想将其保存到文件中,以便在应用程序启动时加载它?