0

私は WPF の初心者であり、何か提案をいただければ幸いです。

私はWPFアプリを持っています。ユーザーが mainWindow の [次へ] ボタンをクリックすると、リモート データベースに接続されます。データベース接続が成功すると、2 番目のウィンドウが表示され、データベースからさらに情報が読み取られ、いくつかの情報が表示されます。クラス 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 インスタンスを 2 番目のウィンドウに転送する方法です。

ありがとう。

4

1 に答える 1

0

アプリケーション スコープの共有変数を作成して、Sqlread オブジェクトに穴を開けてみませんか? その後、アプリ内のどこからでもアクセスできます。

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

メインウィンドウで:

Application.sharedSQLRead = new SQLRead();

2 番目のウィンドウで:

Application.sharedSQLRead.doWhatever();

参照を渡すよりも簡単に思えます....

于 2012-11-15T22:24:17.523 に答える