ユーザーが一部のデータレコードを表形式で表示するデスクトップアプリケーションがあります。ここで、ユーザーがこれらのレコードを同時に複数選択し、選択したレコードのいくつかのプロパティを別の編集ダイアログで一度に編集できるようにする必要があります。アイデアは
ユーザーが本当に変更したいプロパティのみを変更するには
他のすべてのプロパティを変更しないようにする
さらに、ユーザーがレコードを選択して編集ダイアログを開くと、選択したすべてのレコードで等しい値を持つプロパティが対応するUIフィールドに表示され、ユーザーがそうである限り、他のプロパティは「未定義」として表示されます。そこで何かを入力し始めないでください。 「OK」を押すと、変更がレコードに適用されます。この種類のUIの動作は「ロケットサイエンス」ではありません。たとえば、ダイアグラムエディター(複数の描画要素を一度に選択して、そのプロパティを変更できる)で、これは既に見つかりました。
問題は、特に未定義の状態を直感的に視覚化する方法、特にテキストプロパティについてです。ブール値の場合、これは簡単です。トライステートチェックボックスだけを使用します。数値の場合もこれは簡単です。「未定義」状態は空の数値UIフィールドとして表示され、実際に数値がある場合、状態は「定義済み」です。
しかし、テキストプロパティ用にこれをどのように設計しますか?多くのテキストプロパティcanは実際には空であるため、空のテキストボックスフィールドは実際には「未定義」状態ではありません。各テキストボックスの横に個別のチェックボックスを追加して「未定義」と「定義済み」の違いを示すこともできますが、編集ダイアログにはブールプロパティのチェックボックスがすでに含まれているため、これは直観に反してユーザーを混乱させるようです。
これが問題になる場合は、Winformsを使用しています(ただし、この問題は実際のUIフレームワークに固有のものではないと思います)。
チェックボックスがユーザーを困惑させる可能性があることに同意します。
未定義のテキストボックスを表示し、それを有効で空のテキストボックスと区別する方法の問題に対する私の反応は、未定義のテキストボックスにはプレースホルダーを使用し、もう1つのボックスには空のプレースホルダーを使用することです。
有効な空のボックスはユーザーにとって通常のように見え、ユーザーがそれを使用しようとすると、通常性が強化されます。プレースホルダーボックスには、「ここに何かを入力してください」というプレースホルダーメッセージがグレー表示または何らかの方法でミュートされるため、実際の値ではないことがユーザーに明確になります。これは一時的なものであるというこの概念は、ユーザーがボックスに入ると強化され、プレースホルダーのテキストが消えます。
この動作はウェブ上で頻繁に見られるため、ユーザーには直感的に見えるようにし、ユーザーに考えさせてはなりません。
もう1つは、ユーザーが違いがあることを知る必要がある場合に検討できることです。そうでない場合、両方のボックスを空のままにすることができます。
Windowsで使用されているシステムを使用できます。ダイアログを開いて複数のアイテムを編集する場合、両方のデータが一致するエントリが、 ""または類似の文字列が異なるデータとともに表示されます。ユーザーは、複数値のエントリを編集するために個々のアイテムを選択する必要があります。そうしないと、すべてのアイテムのフィールドを置き換えるように上書きできます。
Visual Studioプロジェクトのプロパティを見ると、これはすぐにわかります。
選択した2つのプロジェクトのプリプロセッサ定義が異なるため、表示できないため、VSは静的な文字列を表示します。両方のプロジェクトで上書きするか、プロジェクトを個別に選択してデータを確認する必要があります。私には直感的で明白に思えます-1つのフィールドで2つの異なるものを同時に編集することはできないので、当然それらを個別に編集する必要があります。