#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. танск для ответа, но, пожалуйста, смотрите Редактирование вопроса