0

一連の実行中のプロセスに関する重要なデータを監視して表示する WPF アプリを開発しています。UserControl他のいくつかの機能を実行する sを持つ他のいくつかのタブがあります。プロセス タブは、ディスパッチャ タイマーを使用して 1 秒ごとにデータを更新しますが、計算は比較的重くなります。ここで私がやろうとしているのは、ユーザーが表示していないときにデータ計算が不必要に発生しないように、プロセス タブが選択されたときにのみタイマーを起動し、他のタブが選択されたときにタイマーを停止することです。私のアプリケーションでは、中間データ値は無関係です。

タイマーを開始および停止するためのタブコンテンツとして使用されるLoadedおよびUnloadedイベントをサブスクライブすることを考えていました。UserControlより良い代替手段はありますか?

この機能を実現する最良の方法は何ですか?

4

4 に答える 4

5

TabControlSelectionChangedイベントがあります。あの悪ガキにくっついて。

于 2013-10-17T09:36:29.057 に答える
0

シナリオがよくわからないかもしれませんが、tabsSelectionChangedイベントを使用して、適切なタブが選択されているかどうかを確認する方が簡単ではないでしょうか?

于 2013-10-17T09:36:07.990 に答える
0

SelectionChangedEventHandler を使用して、タブ コントロールの現在のビューについてアプリケーションに通知できます。マルチスレッドアプローチを使用して仕事をすることができます。複数のスレッドを作成して、タブ コントロールのさまざまなタブに追加されたさまざまなビューに必要な計算結果の出力を計算します。データをコレクションに保存し続け、ユーザーがタブを選択してビューを開くたびに、計算されたデータを UI スレッドに渡し、リアルタイムの場合はコレクションをクリアします。他のビューについても同じことを行います。

于 2013-10-17T11:19:21.347 に答える