我正在 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++;
}
为什么要检查最后一项?如何在 C# 代码中使用 silverlight 以编程方式检查第二项? 我尝试这样做是因为我想在程序启动后(在单击按钮之前)初始化单选按钮,因为在单击单选按钮之前,如果我尝试在文本 block 上打印项目,我什么也看不到(它只显示在按钮上)点击,但我希望在点击之前显示一些内容而不是空白)
最佳答案
对您问题的简短回答是,您在代码中设置 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 应用程序中常见的数据绑定(bind)方法不能很好地配合。所选项目的初始状态实际上应该存储在状态变量中。
关于c# - 如何设置radio.IsChecked = true;使用 C# 以编程方式连接到特定的单选按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24370282/