Как установить значение IsEnabled false для всех кнопок radiobutton

#c# #silverlight #radio-button #silverlight-5.0 #isenabled

#c# #silverlight #переключатель #silverlight-5.0 #isenabled

Вопрос:

Я разработчик c #, и я пытаюсь программно установить для всех кнопок radiobutton значение false.

Как установить для всех кнопок radiobutton значение IsEnabled= false ?

РЕДАКТИРОВАТЬ: Пожалуйста, обратите внимание, что у меня такая ситуация, когда я должен сохранить это радио.IsEnabled = false; только вне цикла, так есть ли какой-либо способ, которым я все еще могу иметь все кнопки IsEnable= false?

Комментарии:

1. В качестве альтернативы обратите внимание, что вы можете использовать GroupBox или панель для хранения всех кнопок RadioButtons, а затем установить свойство IsEnabled для GroupBox или панели, и оно автоматически установит его для всех субконтролей (т. Е. Для всех кнопок RadioButton).

2. @MatthewWatson вы очень близки к тому, что я хочу. Не могли бы вы, пожалуйста, подробно объяснить мне что-нибудь о GroupBox?

3. @MatthewWatson на самом деле я делаю ISEnable следующим образом: элемент. FindName(«param_» enableElement). GetType().getProperty(«IsEnabled») . setValue(элемент. FindName(«param_» enableElement), IsEnabled, null); (ЧТОБЫ НЕМНОГО ОБЪЯСНИТЬ ВАМ, ЧТО Я ПЫТАЮСЬ СДЕЛАТЬ.)

4. @MatthewWatson пожалуйста, посмотрите редактирование кода, чтобы узнать точную ситуацию

5. Я не знаком с Silverlight, поэтому я не совсем уверен, что это будет работать так же, но я говорю вот о чем: с помощью Windows Forms вы можете создать GroupBox или элемент управления контейнером панели в качестве родительского элемента для набора субконтролей, таких как RadioButtons, а затем Groupbox /Свойство IsEnabled панели действует как главный переключатель для всех субконтролей. Это позволяет включать и выключать все субконтроли, просто используя IsEnabled элемента управления контейнера.

Ответ №1:

попробуйте приведенный ниже код и возьмите значение isEnable внутри блока кода, как показано ниже

 foreach (String item in param.Component.Attributes[0].Item)
{
    radio = new RadioButton()
    {
        Content = item,
        GroupName = "MyRadioButtonGroup",
       // Name = "param_" param.Name
    };
    radio.Checked  = (o, e) =>
    {
        txtblkShowStatus.Text = item;             
    };
    sp.Children.Add(radio);
    radio.IsEnabled = false;

    count  ;                
}
  

Комментарии:

1. спасибо за ответ, но, пожалуйста, посмотрите Редактирование вопроса.

Ответ №2:

Вы используете переменную radio , объявленную вне функции, объявляете ее как локальную переменную, подобную этой, и устанавливаете IsEnabled каждый раз, когда вы ее создаете:

 foreach (String item in param.Component.Attributes[0].Item)
{
     RadioButton radio = new RadioButton()
    {
        Content = item,
        GroupName = "MyRadioButtonGroup",
       // Name = "param_" param.Name
    };
    radio.Checked  = (o, e) =>
    {
        txtblkShowStatus.Text = item;             
    };
    radio.IsEnabled = false;
    sp.Children.Add(radio);
    count  ;     
}
  

Комментарии:

1. спасибо за ответ, но, пожалуйста, посмотрите Редактирование вопроса.

2. эта radio переменная вне функции должна иметь какое-либо отношение к этим переключателям, созданным внутри функции?

Ответ №3:

Это потому, что вы помещаете radio.IsEnabled = false; вне цикла.

 {
    radio = new RadioButton()
    {
        Content = item,
        GroupName = "MyRadioButtonGroup",
       // Name = "param_" param.Name
    };
    radio.Checked  = (o, e) =>
    {
        txtblkShowStatus.Text = item;             
    };
    sp.Children.Add(radio);
    radio.IsEnabled = false;

    count  ;                
}
  

Комментарии:

1. танск для ответа, но, пожалуйста, смотрите Редактирование вопроса

2. пожалуйста, ознакомьтесь с прокомментированной частью в моем коде, мне не нужно устанавливать значение IsEnabled в false таким образом.

3. Я не думаю, что вы знаете, чего хотите. Этот ответ — именно тот ответ, который вы ищете. Вне цикла.

Ответ №4:

Я предполагаю, что помещение radio.IsEnabled = false; в ваш цикл сделает свое дело..

Редактировать :

Я не уверен, что вполне понимаю, почему вы хотите установить значение false на втором шаге, однако вы можете попробовать:

 foreach (Radiobutton r in sp.Childern)
{
 r.IsEnabled = false;  
}
  

Комментарии:

1. танск для ответа, но, пожалуйста, смотрите Редактирование вопроса