C# Windows窗体显示Radiobutton数据绑定的简单示例

C# Windows窗体显示Radiobutton数据绑定的简单示例,c#,winforms,data-binding,C#,Winforms,Data Binding,问题是Windows窗体数据绑定 假设这是我的自定义类 public class SimpleClass : INotifyPropertyChanged { public Name {get; set;} char OrderType; ... } 订单类型为p(采购订单),S(销售订单)。我需要发票等 我需要在Windows窗体上显示为一组单选按钮 对于文本框,这是数据绑定语法 Binding nameBinding = new Binding("Text", thi

问题是Windows窗体数据绑定

假设这是我的自定义类

public class SimpleClass : INotifyPropertyChanged
{

  public Name
  {get; set;}

  char OrderType;
  ...

}
订单类型为p(采购订单),S(销售订单)。我需要发票等 我需要在Windows窗体上显示为一组单选按钮

对于文本框,这是数据绑定语法

Binding nameBinding = new Binding("Text", this.SimpleObject, "Name", true);
this.nameTextBox.DataBindings.Add(nameBinding);
如何将OrderType数据绑定到包含三个单选按钮的groupbox两个问题:

  • 数据绑定仅适用于属性。正如您所看到的,
    OrderType
    是一个字段
  • 以这种方式绑定到
    RadioButton
    s(大多数人都希望这样做),不是本机支持的。唯一可行的方法是创建一个控件,该控件管理一个或多个
    单选按钮,并提供
    SelectedValue
    (或等效)属性,然后将该值绑定到该属性。有几种第三方解决方案,我可以推荐这些控件

  • 下面是一个使用
    enum
    (代替
    char
    )支持的属性数据绑定一组单选按钮(作者称之为RadioPanel)的示例:

    我还没试过


    否则,我的工作就是创建一个带有几个单选按钮的用户控件。关键是在UC上实现
    INotifyPropertyChanged
    ,并使用单选按钮的
    CheckedChanged
    事件来设置与我的UC关联的属性值。

    Oops我忘了为OrderType设置属性。因此,如果我没有使用第三方控件,那么我从您的解释中得到的是,每当我需要在groupbox中使用单选按钮时,我都需要创建一个UserControl。是这样吗?你不会每次都创建UserControl,但是你可能需要找到一个现有的自定义控件,或者创建你自己的通用版本来支持它。谢谢。我在谷歌搜索的时候偶然发现了那篇文章。我认为不应该有那么大的牵连。如果我不使用数据绑定,我可以简单地检查CheckedChanged上的索引,并适当地更新我的自定义对象。我只是想在数据绑定的问题上绞尽脑汁。在某些圈子里(Alt.Net),数据绑定甚至不是推荐的做法