Какой контроль использовать - PullRequest
1 голос
/ 07 мая 2010

У меня есть список устройств, которые мне нужно отфильтровать в соответствии с параметрами, выбранными пользователем.Одним из таких вариантов является охлаждение: когда пользователь выбирает охлаждение, отображаются только устройства с охлаждением.Если охлаждение не выбрано, отображаются все устройства (с охлаждением или без).

Интересно, какой тип управления мне лучше всего использовать для этого.Мне кажется, что флажок не очень хороший контроль, поскольку он представляет:

Нет охлаждения (не проверено) / только охлаждение (проверено)

пока я хочу

охлаждение и отсутствие охлаждения (не проверено) / только охлаждение (проверено).

Какой элемент управления лучше использовать здесь?

Спасибо.

Ответы [ 3 ]

1 голос
/ 07 мая 2010

Не забывайте, что класс флажка .NET может иметь три состояния

CheckBox.ThreeState = TRUE;

edit Это дает вам true или false для CheckBox.Checked и проверено, не отмеченоили неопределенный для CheckBox.CheckState.

1 голос
/ 07 мая 2010

Флажок является правильным элементом управления.Вы просто должны правильно обозначить его: «Включать только устройства: [] с охлаждением». Мне кажется однозначным, что снятие флажка означает, что фильтр не применяется и включает оба устройства с охлаждением и без него.В общем, пользователи интерпретируют пробел, в том числе непроверенный, как «не запрашивать / фильтровать по этому критерию», а не как «инвертировать этот критерий фильтра запросов».

Если вы не уверены, тогда используйте радиокнопки (или раскрывающийся список, если места недостаточно): «Включить только устройства: () С охлаждением, () С охлаждением или без».

Если вы хотите включить параметр фильтрации без охлаждения, тоВы должны использовать переключатели или раскрывающийся список: «Включить только устройства: () С охлаждением, () Без охлаждения». Аналогично, если вам нужно отобразить более двух состояний, необходимо использовать переключатели или раскрывающийся список: «Включитьтолько устройства: () с охлаждением, () без охлаждения, () с охлаждением или без него. ”

Вы правы, если использование флажка с тремя состояниями может привести к путанице.Смешанное состояние используется для обозначения «некоторые да, некоторые нет», а не «и да, и нет». Рекомендации по взаимодействию Windows UX специально запрещают использование смешанного состояния флажка в качестве третьего состояния для одного элемента (в данном случае вы фильтруете).) или позволить пользователям выбрать смешанное состояние (стр. 49).

Вообще этого следует избегать.

1 голос
/ 07 мая 2010

Я вижу три варианта в порядке убывания предпочтения:

  • Используйте флажок с тремя состояниями (тот, который может быть серым), используя свойство ThreeState . Основное преимущество здесь - меньше беспорядка, меньше чтения и меньше кликов. Если они вначале отображаются серым цветом, пользователю будет ясно, что это состояние возможно, и отклонение от обычного поведения флажка не должно быть большой проблемой.

  • Используйте раскрывающийся список с опциями «Да», «Нет» и «Все равно». Если изначально некоторые или все параметры будут иметь определенное «Да» или «Нет», это может быть лучшим вариантом.

  • Используйте сетку из радиокнопок с тремя столбцами. Гадкий, и требует некоторых мыслей, чтобы понять это. Я бы не стал этого делать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...