0

カテゴリの階層があり、カテゴリは 1 つの親を持つことができます (また、複数のレベルの子を持つことができます)。

この情報をユーザーに表示する方法を調査していますが、基本的なバニラ ツリーのレイアウトが最も直感的な方法のようです。しかし、誰かが他のアプローチを提案できるかどうか疑問に思っています。

要件は、

1) リストの親子関係をユーザーに明確に示す 2) ユーザーが項目を簡単に移動できるようにする (ドラッグ アンド ドロップまたはその他の方法で) 3) 複数の親を持つ階層データがあると仮定すると、どのように変化するかあなたの選択?

みんな、ありがとう!- ケビン

4

4 に答える 4

2

あなたの基本的なツリー コントロールは、階層関係を示す上で非常にうまく機能しています。初心者にとっては比較的習得が容易で、現在では階層のデファクト スタンダードとなっています。特にドラッグ アンド ドロップを使用したリレーションの編集に非常に適しています。階層の深さがオブジェクトによって任意に変化する場合 (つまり、ツリー上の任意のオブジェクトについて、子、孫、ひ孫など、無数の「世代」が存在する可能性がある場合) は、おそらくこれが唯一の実行可能な選択肢です。 )。

ツリーの主な代替手段は、マスター/詳細ペインを含むウィンドウです。この設計では、1 つのペインに親オブジェクトが含まれ、別のペインに子オブジェクトが含まれています。親オブジェクトを選択すると、子ペインにその子が表示されます。必要に応じて孫ペインとひ孫ペインを使用できますが、通常、マスター/詳細は、階層に少数の固定数のレイヤーがある場合に最適に機能します。ユーザーは、ツリー コントロールを使用する場合と同様に、ウィンドウ内またはウィンドウ間で子オブジェクトをドラッグ アンド ドロップおよびカット/コピー & ペーストすることにより、親子関係を編集します。

次の場合は通常、マスター詳細の方がツリーよりも優れています。

  • 各オブジェクトで複数のプロパティまたは属性を表示する必要があります。たとえば、特定のプロジェクト オブジェクトについて、各チーム メンバーの従業員番号だけでなく、それぞれの名前、役割、役職、部門、および写真もリストする必要があります。マスター/ディテールを使用すると、各ペインをテーブルまたはフォームとしてレイアウトして、各オブジェクトについて多くのことを示すことができます。ツリー コントロールは、多くの場合、これを実現するために、非効率的で紛らわしい [プロパティ] ダイアログに頼っています。

  • 子供を細分化する必要があります。たとえば、特定のプロジェクト オブジェクトについて、そのチーム メンバーをそのプロジェクト ステージから分離しておきたいとします。マスター/ディテールを使用すると、1 つの親ペインに対して 2 つ以上の子ペインを作成できます。1 つのペインにはチーム メンバーがリストされ、もう 1 つのペインにはステージがリストされます。関連のない子オブジェクトをツリー コントロールで分離しておくのは面倒です。

  • 多対多の関係があり、各子には複数の親があり、各親には複数の子があります。たとえば、各プロジェクトに複数の従業員 (チーム メンバーとして) がいるとしますが、各従業員は複数のプロジェクトで作業する場合があります。親ペインにプロジェクト、子ペインにチーム メンバーを表示するウィンドウ、親ペインに従業員、子ペインにプロジェクトの割り当てを表示するウィンドウ、または両方のウィンドウを表示することができます。ユーザーは同じ子が複数の親の下にあるとは想定していないため、多対多の関係がある場合、ツリー コントロールはユーザーを混乱させる可能性があります。

于 2009-04-23T13:01:12.810 に答える
1

TreeGX は、標準のツリーとは異なる方法で階層データを表示する優れた方法です。リンクはこちらです。

このコンポーネントを使用して検索結果を表示します。無料ではありませんが、何かユニークなものを表示したい場合は、お金を払う価値があります。

于 2009-04-22T22:27:36.857 に答える
0

視覚的なフローチャート スタイルのデザインを追加して、より魅力的なものにすることができます。どこまで行きたいかは完全にあなた次第です。これは、複数の親を持つ場合に役立ちます。

于 2009-04-22T22:04:18.737 に答える