Как установить радио.IsChecked = true; для конкретной радиопереключателя программно с помощью C#
Я работаю над Silverlight, и я создал радио-кнопку, я хочу вручную установить проверку радио-кнопки для заданных 3 пунктов (itms означает 3 радио-кнопки) на радио-кнопке. Я попробовал вот так
RadioButton radio = new RadioButton();
Предположим, что эти переключатели содержат "элементы (переключатели)", и когда я пытаюсь использовать приведенный ниже код для проверки второго элемента (из 3 элементов), приведенный ниже код проверяет последний элемент.
radio.Loaded += (p, q) =>
{
radio.IsChecked = true;
};
Как я создаю кнопку:
foreach (String item in param.Component.Attributes[0].Item)
{
radio = new RadioButton()
{
Content = item,
GroupName = "MyRadioButtonGroup",
Tag = tg
};
radio.Checked += (o, e) =>
{
//Do something
};
sp.Children.Add(radio);
count++; tg++;
}
Почему проверяет последний пункт? Как проверить второй пункт программно, используя silverlight в коде C#? Я пытаюсь сделать это, потому что хочу инициализировать переключатель после запуска программы (до нажатия кнопки), потому что при нажатии кнопки переключателя до нажатия кнопки, если я пытаюсь напечатать элементы текста в текстовом блоке, я ничего не вижу (он отображается только на кнопке). щелкает, но я хочу, чтобы что-то отображалось до нажатия вместо пустого места)
1 ответ
Краткий ответ на ваш вопрос: radio.IsChecked=true
в коде, чтобы сделать RadioButton проверено.
Одним из способов решения этой проблемы является установка IsChecked = true при добавлении второго переключателя. Поскольку ваш код находится в цикле foreach, ваша переменная count должна работать.
foreach (String item in param.Component.Attributes[0].Item)
{
radio = new RadioButton()
{
Content = item,
GroupName = "MyRadioButtonGroup",
Tag = tg
};
radio.Checked += (o, e) =>
{
//Do something
};
sp.Children.Add(radio);
count++; tg++;
if (count == 2){
radio.IsChecked=true;
}
}
Или вы можете изменить цикл foreach на цикл for
for (int i = 0; i < param.Component.Attributes[0].Item.Count ; i++)
{
}
if (i== 2){
radio.IsChecked=true;
}
Хотя оба эти подхода работают, они плохо сочетаются с подходом с привязкой к данным, распространенным в большинстве приложений Silverlight. Начальное состояние выбранных элементов действительно должно храниться в переменной состояния.