0

ユーザーに警告する必要があることに応じて、レコードが変更されたかどうかを確認する必要があるという要件があります。したがって、5秒ごとにタイマーを使用して、データベースから確認し、ユーザーにアラートウィンドウを表示しようとしています。うまく機能しています。

問題は、ユーザーが長時間アイドル状態になっている場合です。時間の経過とともに複数のアラートウィンドウが表示されます(2秒ごとのデータ変更を考慮)。

したがって、アラートウィンドウがすでに開いているかどうかを知る必要があります。開いているウィンドウのインスタンスを取得して、操作を実行する方法を教えてください。

ここでは、単一のインスタンスを作成したくありません。Silverlightで直接実行できる方法があるかどうかを教えてください。

4

3 に答える 3

1

Telerik ウィンドウを使用していると仮定して (質問に Telerik というタグが付けられているため)、試してください。

RadWindowManager.Current.CloseAllWindows();

または、さらに制御する必要がある場合は、現在開いているウィンドウを使用して反復処理できます。

RadWindowManager.Current.GetWindows()
于 2012-09-04T19:17:50.450 に答える
0

アプリケーションで子ウィンドウをシングルトンとして作成し (プライベート メンバーを宣言)、それに応じて開いたり閉じたりして、インスタンスを解放します (null に等しい)。それが整ったら、「サブウィンドウ」がnullと異なるかどうかを確認するだけで済みます。つまり、そうでない場合は開いていることを意味し、インスタンスを作成して開きます。

于 2012-08-29T16:54:31.043 に答える
0

Application.Current.Windows (アプリケーションによって作成されたすべてのウィンドウを含む) を介して列挙できます。そこで警告ウィンドウを見つけて前面に表示するか、新しい警告ウィンドウを作成できます。

于 2012-08-29T17:39:28.927 に答える