2012-11-15 25 views
0

我是WPF的新手,任何建議將不勝感激。如何在兩個WPF窗口之間傳遞自定義對象

我有一個WPF應用程序。當用戶單擊mainWindow的「NEXT」按鈕時,它將連接到遠程數據庫。如果數據庫連接成功,第二個窗口將顯示並從數據庫中讀取更多信息並顯示一些內容。我使用類SQLRead來完成數據庫連接作業。

public class SQLRead 
{ 
    public string sql; 
    SqlConnection conn; 
    SqlCommand cmd; 
    public int counter, length, dIndex, cdIndex, sdIndex; 
    public int[,] data; 
    public char[,] cdata; 
    public string[,] sdata; 

    public SQLRead() 
    { 
     sql = ""; counter = 0; length = 0; 
     dIndex = 0; cdIndex = 0; sdIndex = 0; 
    } 

    public void NewConnection() 
    { 
     //if (conn != null) conn.Close(); 
     conn = new SqlConnection(
      @"Data Source = TheServer\TheInstance 
       Integrated Security = SSPI;"); 
     cmd = new SqlCommand(sql, conn); 
     cmd.CommandTimeout = 120; 
     cmd.CommandType = CommandType.Text; 
    } 

    public void Connect() 
    { 
     conn.Open(); 
    } 

    public void Disconnect() 
    { 
     conn.Close(); 
    } 

我的問題是如何將SQLRead實例傳輸到第二個窗口?

謝謝。

+1

你不能將它傳遞給第二個窗口的構造函數嗎? –

回答

0

爲什麼不創建應用程序範圍的共享變量來打破Sqlread對象?然後,你可以在應用程序從任何地方訪問它:

class Application 
{ 
    internal static SQLRead sharedSQLRead { get; set; } 
} 

在主窗口:

Application.sharedSQLRead = new SQLRead(); 

在第二個窗口:

Application.sharedSQLRead.doWhatever(); 

這似乎不是通過圍繞基準容易...

相關問題