我正在研究silverlight并且我创建了一个radiobutton我想手动设置radiobutton的检查以编程方式给出3个项目(itms意味着3个radiobutton)在单选按钮上。我试过这样
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? 我尝试这样做,因为我想在程序启动后(在按钮点击之前)初始化单选按钮,因为在按钮单击单选按钮之前,如果我尝试在文本块上打印主题,我什么也看不见(它只显示在按钮上)点击但我希望在点击之前显示某些内容而不是空白空间)
答案 0 :(得分:2)
您的问题的简短回答是您在代码中设置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应用程序中常见的数据绑定方法很好地融合。所选项目的初始状态应该真正存储在状态变量中。