2

これは何よりもスタイルに関する質問です。一般的な GUI 設計の問題を解決するのに役立つアイデアを探しています。アプリケーションは Winforms で作成されておりWPF、アプリケーションは既に完成していますが、かなりの完璧主義者であり、他の人々と協力してこの問題を解決するためのより良い方法が必要であると判断しました。

一連の機能を備えたコントロールをどのようにカプセル化しますか? 同じ機能の複数の列が存在する可能性があることを考慮して、以下のカスタム飛行機システムがあるとしましょう。これにより、フライト コーディネーターは特定のフライト スタッフを各フライトに割り当てることができます。艦隊全体のすべての飛行機に関心があるわけではないため、割り当てられたスタッフを選択する前に、表示したい飛行機を選択するか、すでに割り当てられているスタッフがいる場合は、スタッフ セルに事前入力されます。 .

この問題を実装する現在の方法は、各セルにボタンを使用することですが、これは、各列をクラス内の多数のボタンでカプセル化する必要があることを意味します。各列は " " と呼ばれるクラスで表され、AirplaneCrew割り当てられた各スタッフと現在の飛行機を構成し、これらの列のデータを処理します。それぞれに添付されているAirplaneCrewのは、AirplaneCrewGUIボタンの列をカプセル化し、それに応じて GUI を生成する です。それをよりよく理解するために、単純な を提供しましたUML。おそらく完璧ではありませんが、これは、クラスを GUI と絡み合わせる方法を理解していないところです。誰かが本を持っているか、GUI要素を扱う際のより良い練習を達成する方法の要約を提供できる場合.

ここに画像の説明を入力 あ

4

1 に答える 1

1

MVVM と MVP はどちらも、ビュー (UI) をロジックから分離します。

WPF の DataBinding を使用すると、表示する必要があるデータに基づいて UI を「生成」するテンプレートを作成できます。

私は、これら 2 つのことが現在の設計に欠けている (または多くの苦痛を引き起こしている) ことを期待しています。

柔軟な UI には、懸念事項を明確に分離する必要があります。これにより、新しい要件を満たす必要がある場合や、すべての調整を手作業で行いたくない場合に、システムを変更する場所がわかります。構成および/またはメタデータに基づいてシステムを自動的に変更します。

現在のテクノロジーがこれら 2 つの機能をサポートしていない場合は、それらを作成する必要があり (多くの作業が必要です)、他の人から入手するか、別のテクノロジーに切り替える必要があります。

于 2012-08-13T06:28:48.103 に答える