2

そこで、主にウィンドウのないアプリケーションを作成することを計画しています。ユーザーと対話するためのウィンドウがありますが、ユーザーの要求がある場合のみです。それ以外の場合、アプリケーションはシステム トレイに常駐し、タイマーを実行して、約 1 分ごとに何らかのロジックを実行します。私の質問は次のとおりです。私が知る限り、関連するすべてのロジックを App.xaml.cs に配置します (タイマーを開始し、各間隔でロジックを実行します) が、何らかの理由でこれは間違っているようです。

アプリにはシステム トレイ アイコンがあり、ユーザーはそれを操作して詳細を取得したり、設定を調整したりできますが、それ以外の場合、アプリはそこに座ってその機能を実行します。App.xaml クラスのコード ビハインドにすべてのコードを配置することは適切ですか? 理由はわかりませんが、そうすべきではないようで、別の場所にあるはずですが、何も思いつきません。

私はこれまでこのようなアプリを作成したことがないため、無知です。アドバイスをいただければ幸いです。ありがとう。

ジェームズ

4

2 に答える 2

2

ほとんどの対話がウィンドウを介して行われるアプリケーションであっても、すべてのコードをコード ビハインドに配置することは、通常は悪い考えです。インタラクションは多くの場合、コード ビハインドで開始されるイベント ハンドラーですが、自分で作成したクラスにコードを配置できます。

同じことが、ほとんどの場合ユーザー インターフェイスを表示しないアプリケーションにも当てはまります。ほとんどのアクションは App.xaml.cs から開始されますが、すべてのコードがそこに存在する必要があるわけではありません。たとえば、タイマーを独自のクラスにカプセル化して、他のコードを開始して作業を行うことができます。責任の行に沿ってコードを分割し、ウィンドウ クラスは UI を処理し、ドメイン ロジックは他のファイルに移動します。これにより、より保守しやすいアプリケーションを作成できます。

于 2009-06-22T20:12:10.987 に答える
1

コードがそこに属しているようには聞こえず、せいぜいタイマーを開始するための呼び出しにすぎません。あなたの問題にぴったりのように聞こえるのは、MV-VM (Model - View - ViewModel) パターンです。あなたが指摘したように、コードビハインドにロジックを追加するよりも、より正確に「感じる」でしょう。MVVM を使用すると、スパース UI をビューに分離でき、コードはモデルとビューモデルに別々に存在できます。

こちらのツールキットを使用することをお勧めします。これには、優れた概要ドキュメントと、独自のソリューションを作成するときに理解できるサンプルも含まれているためです。Laurent Bugnionは、開始に使用できる MVVM スターター ツールキットもリリースしました。

また、実際にシステム トレイにコントロールを設定するための良い方法もいくつかあります

于 2009-06-22T20:14:49.283 に答える