那是ASP.NET,这个是WinForm。

解决方案 »

  1.   

    3个radiobutton是动态生成的吧,那就动态绑定其属性就完了啊
      

  2.   

    解决了,
    Case when  text2='Y' then 'True' else 'False' end  radiobutton1, Case when  text2='N' then 'True' else 'False' end  radiobutton2,Case when  text2='0' then 'True' else 'False' end  radiobutton3,
    一列值 用 case when 去判断获取3种结果 分别绑定给 radiobutton。但是,接下来又有一个问题了。radioButton1.DataBindings.Clear();
                radioButton1.DataBindings.Add("Checked", bindingSource1, "radioButton1"); 
      我在WinForm 填充bindingSource1,再绑定给radiobutton.
    在业务逻辑事件:
      创建新数据时,调用 this.bindingSource1.AddNew() 方法去添加新数据,却发现 异常。  未处理 System.InvalidOperationException
      Message=添加到 BindingSource 的列表中的所有对象必须是同一类型。  这个错误是我添加下面这事件爆出来的
       private void bindingSource1_AddingNew(object sender, AddingNewEventArgs e)
            {
               e.NewObject = new Object();
            }  这个事件本来是可以省略的,原因是 在绑定数据,需要增加新行的时候,正常用AddNew() 方法,会清空掉控件里的数据,并且 bindingSource1.Count.ToString() 会 + 1,但是 绑定了radiobutton后,控件里的数据并不会清空,我这才发现 AddNew()  有异常了,于是 主动用 AddingNew 去报错。
      这个有无好的解决办法啊!
      

  3.   

    目前的解决办法是:
      在 this.bindingSource1.AddNew()  之前强行赋值, radiobutton.Checked = true; 但是 没能搞懂这里面的原理,实在是心有不甘。
      

  4.   

    查了资料,搞定了。
    radioButton1.DataBindings.Clear();
                radioButton1.DataBindings.Add("Checked", bindingSource1, "radioButton1",true);
    后面 加true
    1)formattingEnabled(属性FormattingEnabled)
             true,Binding对象自动在数据源类型和控件要求的类型间进行转换
              false,反之
      

  5.   

    根据你的图片,你的 radio button 的外层是什么?是 groupbox 吗?如果是 groupbox 或者其他容器,可以用这种方法赋值:private void SetRadioGroupsValue(IEnumerable<Control> containers, IEnumerable<string> values)
    {
        for (int i = 0; i < containers.Count(); i++)
        {
            SetRadioGroupValue(containers.ElementAt(i), values.ElementAt(i));
        }
    }
    private void SetRadioGroupValue(Control container, string value)
    {
        var radios = container.Controls.Cast<RadioButton>().Where(rb => rb.Tag.ToString() == value);
        if (radios.Count() > 0)
        {
            radios.First().Select();
        }
    }
    // 注意:你必须事先把每一个 radio 的 Tag 值设置好,比如:合格 1,不良 2,未检测 3
    // 那么调用就可以这样,我只是举个例子:
    SetRadioGroupsValue(Controls.OfType<GroupBox>(), new[] { 1, 2, 3, 1, 2, 3, 1, 3 }.Select(i => i.ToString()));
      

  6.   

    有一点需要注意的是,你循环遍历获得的 groupbox 的顺序和你 Form 上添加 groupbox 的顺序是相反的!