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

标签 c# .net silverlight radio-button ischecked

我正在 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/

相关文章:

c# - 使用 JavaScriptSerializer 的反序列化缺少字段

c# - 有人可以向我解释一个简单的数据绑定(bind)行为 C# Silverlight 4.0

c# - IList 和 IEnumerable 上的扩展方法是否具有相同的名称?

c# - 如何在不同条件下选择同一个字段两次并将结果显示为单独的字段

android - 绘制图形多平台(IOS、WindowsPhone、Android)库

c# - 所有静态成员存储在哪里?

c#/WPF openFile对话框打开两次

.net - 带有 dotnet pack 的软件包版本始终为 1.0.0

c# - Silverlight 单元测试

javascript - 构建巨大的单页应用程序、框架选择等