Не можете снять флажок с RadioButton, если он в своей группе? - PullRequest
0 голосов
/ 23 марта 2012

У меня есть набор переключателей. В некоторых случаях я хочу, чтобы пользователь мог выбрать более одной из этих переключателей.

Я использую логику, что, если я хочу, чтобы пользователь выбирал только один из переключателей, я добавляю их в одну и ту же радиобутгруппу. Если я хочу, чтобы пользователь мог выбрать несколько, я добавляю каждый из них в свою собственную радиобутгруппу.

Проблема, с которой я столкнулся, заключается в том, что, когда я сам выбираю переключатель в группе, я не могу отменить его выбор.

Может кто-нибудь сообщить, почему это происходит, и предложить другой способ сделать это?

Ответы [ 5 ]

8 голосов
/ 23 марта 2012

Используйте CheckBoxes.RadioButtons не предназначены для этого.

3 голосов
/ 23 марта 2012

Радиокнопки не могут быть отключены. Вы должны использовать обычные флажки в этом контексте. В Checked Event флажка вы можете, например, снять другие флажки. Это не очень хороший способ, но он работает.

1 голос
/ 14 августа 2012

RadioButton в WFP имеет логическое свойство IsChecked, которое можно установить на false.Чтобы сбросить переключатели в группе, вы должны установить для IsChecked значение false для всех (или только для переключателя, для которого IsChecked имеет значение true).

0 голосов
/ 30 декабря 2013

Я помню, что смог сделать это на старом проекте XAML / WPF.Сегодня я искал, чтобы он реализовывал это на XAML / Windows Phone 8, и кажется, что это довольно сложно сделать.

К счастью, я нашел эту статью: http://social.msdn.microsoft.com/Forums/vstudio/en-US/f0f6587b-8a08-4c6c-b071-802d104a35da/how-to-uncheck-all-radiobuttons-in-a-group?forum=wpf

По сути, вы должны установить IsChecked в False для всех кнопок, входящих в одну группу.(Кстати, я установил IsThreeState в значение по умолчанию).

Надеюсь, это поможет.

Приветствия, Гербер

0 голосов
/ 02 июня 2012

Если вы выберете опцию переключателя, привязка устанавливает значение true.Если текущее значение и предлагаемое значение равны true, установите для него значение false.Эй, это работает для меня.

    public bool chcked 
    {
        get { return c; }
        set 
        {
            if (c && value)
            {
                c = false;
                return;
            }
            c = value; 
        } 
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...