C# 如何设置radio.IsChecked=true;使用c编程到特定的单选按钮#

C# 如何设置radio.IsChecked=true;使用c编程到特定的单选按钮#,c#,.net,silverlight,radio-button,ischecked,C#,.net,Silverlight,Radio Button,Ischecked,我正在silverlight上工作,我已经创建了一个radiobutton,我想通过编程将radiobutton的检查手动设置为单选按钮上给定的3个项目(itms表示3个radiobutton) RadioButton radio = new RadioButton(); 假设此单选按钮包含“项”(单选按钮),当我尝试下面的代码检查第二项(共3项)时,下面的代码检查最后一项 radio.Loaded += (p, q) => { radio.IsChecked

我正在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以编程方式检查第二项?
我尝试这样做是因为我想在程序启动后(在按钮单击之前)初始化单选按钮,因为在单选按钮的按钮单击之前如果我尝试在文本块上打印itmes,我什么也看不到(它只在按钮单击时显示,但我希望在单击之前显示一些内容,而不是空白)您的问题的简短答案是,您在代码中设置了
收音机。IsChecked=true
,以使收音机按钮处于选中状态

解决此问题的一种方法是在添加第二个单选按钮时设置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;
   }
for(int i=0;i

虽然这两种方法都有效,但它们与大多数Silverlight应用程序中常见的数据绑定方法不太匹配。所选项目的初始状态实际上应该存储在状态变量中。

除非我弄错了(在这种情况下,我道歉),您将需要进行回发,以便单选按钮在更改“IsChecked”时可视地更改“已初始化后的值。注:如果你愿意使用jQuery,那么通过jQuery做起来会简单得多。@EvilBeer请看编辑我为什么要这么做。你允许/愿意使用jQuery/Javascript吗?你是用代码还是用XAML创建单选按钮?@EvilBeer没有什么比Java更像的了。只有C。