これがソフトウェアエンジニアリングのトピックに当てはまる質問かどうかはわかりません。
オブジェクト「Categories」と「CategoryValues」の2つのレベルがあります。ユーザーがそのアイテムから選択し、必要な数だけ選択するためのユーザーインターフェイスを構築する必要があります。
10または20のカテゴリがありますが、各カテゴリには1から(最悪の場合)1000のカテゴリ値を含めることができます。
例えば:
したがって、特定のアイテムを分類するには、ユーザーはこのリストから選択する必要があり、これまでに選択されたものを確認する必要があります。
私は二重選択リストを考えましたが、リストが長すぎるため、多くのスクロールが必要になります(特に、多くのカテゴリー値がある場合)。同じことは2つのツリーにも当てはまります。これは、2つだけのレベルであるため、折りたたみの可能性があまりないためです。
ユーザーにそのような分類をさせる最良の方法は何ですか?
ユーザーが検索対象を知っている場合(都市の場合)、オートコンプリートをお勧めします。ユーザーに最初の3文字を入力させてから、それらの文字を含む検索結果をいくつか表示し(可能な場合はファジーロジックを使用)、フィールドに直接最も近い結果を表示しますが、ユーザーが入力を続けるとプロセスが続行されるように選択されます(もう一度検索してください)が、彼がTabキーを押すと、結果は残ります。
まあ、私は、質問が正しい場所にあるとは思いません。とにかく、私見の最良のアプローチは、カテゴリーを選択自体から分離することです。まず、最初のフィルターコントロールとしてComboBox
を使用できます。そこで、選択を行う前にカテゴリを選択できます。これは、ユーザーに特定のコンテキストを提供し、ユーザーが集中するのに役立ちます。
カテゴリを選択すると、ユーザーはこのカテゴリで利用可能なすべてのアイテムをListBox
で表示します。これにより、スクロール可能なコンテンツの量が減っています。
ListItem
は、チェックボックスとアイテムの名前にすることができます。 CheckBox
をチェックすると、アイテムが選択されます。 CheckBox
は物事を選択する非常に明示的な方法であるため、ユーザーが解釈する必要はありません。
アイテムの量を効率的に処理するには、いくつかのフィルターを提供する必要があります。 ListBox
の下。
CheckBox
すべてのSelected
またはUnselected
アイテムを表示します。
ユーザーが検索用語を入力できるTextBox
。入力された用語に従って、使用可能なアイテムはListBox
でフィルタリングされます。
選択UserControl
の下に、すべてのカテゴリのすべての選択されたアイテムに関する概要を提供する要約領域を置くことができます。ここでは、巧妙な概念も必要になります。