2012-03-07 80 views
2

我对我的愚蠢问题感到抱歉,但我被卡住了。我正在创建应用程序,它将与SQL一起工作。在MainWindow中,我有一个显示SQL查询结果的DataGrid。我想在模态对话框中设置查询。我创建了它,但我不知道如何将字符串从模式对话框中的TextBox连接到主窗口中的字符串。从这个窗口如何在模态对话框的主窗口中设置变量

指定查询字符串:

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

     private void ask_DB_Click(object sender, RoutedEventArgs e) 
     { 
      string query = textBox1.Text(); 
     } 
..... 
} 

到主窗口

public partial class MainWindow : Window 
{ 

    string DB_query = DB_conn_win.query; 


    public MainWindow() 
    { 
     InitializeComponent(); 
..... 

非常感谢帮助!

回答

0
public partial class DB_conn_win : Window 
{ 

    private void ask_DB_Click(object sender, RoutedEventArgs e) 
    { 
     this.Query = textBox1.Text(); 
    } 
    public string Query; 
..... 
} 



public partial class MainWindow : Window 
{ 

    string DB_query = DB_conn_win.query; 

    public SomeButton_Click(object sender, RoutedEventArgs e) 
    { 
    var dialog = new DB_conn_win(); 
    if (dialog.ShowDialog() == true) 
    { 
     this.DB_query = dialog.Query; 
    } 
    } 
+2

你不应该使用公有领域,这就是属性的用途。 – svick 2012-03-07 00:48:18

0
public partial class DB_conn_win : Window { 
    public string query; 
    private void ask_DB_Click(object sender, RoutedEventArgs e) { 
     this.query = textBox1.Text(); 
    } 
} 

public partial class MainWindow : Window { 
    string DB_query; 

    public MainWindow() { 
     InitializeComponent(); 
     Loaded += Window_Loaded; 
    } 

    void Window_Loaded(object sender, RoutedEventArgs e) { 
     DB_conn_win dialog = new DB_conn_win(); 
     dialog.Owner = this; 
     dialog.ShowDialog(); 
     if (dialog.DialogResult != null && dialog.DialogResult.Value) 
      DB_Query = dialog.query; 
    } 
} 

ShowDialog的和DialogResult的检查取决于你的对话框的设置方式 - 看this link了解更多详情。

+2

你不应该使用公共领域。 – svick 2012-03-07 00:47:34

相关问题