C# 如何设置Winforms控件可绑定的自定义属性?

C# 如何设置Winforms控件可绑定的自定义属性?,c#,.net,winforms,data-binding,C#,.net,Winforms,Data Binding,我有一些属性,比如OverlyColor等,我想绑定到不同类型的实例,但是绑定的数据不会改变 我用这个: [Bindable ( true )] public Color OverlayColor { get; set; } UI会更改,但绑定的数据不会更改。绑定数据的属性名为Color。据我所知,Bindable属性是在当前控件的(DataBindings)下添加属性 要解决绑定上覆盖颜色未更新的问题,必须在绑定到的对象上实现INotifyPropertyChanged接口。更改绑定对象时,

我有一些属性,比如OverlyColor等,我想绑定到不同类型的实例,但是绑定的数据不会改变

我用这个:

[Bindable ( true )]
public Color OverlayColor { get; set; }

UI会更改,但绑定的数据不会更改。绑定数据的属性名为Color。

据我所知,Bindable属性是在当前控件的(DataBindings)下添加属性

要解决绑定上覆盖颜色未更新的问题,必须在绑定到的对象上实现INotifyPropertyChanged接口。更改绑定对象时,必须引发NotifyPropertyChanged事件

在下面的示例中,我创建了一个数据类,用于绑定并调用ChangeColor()方法来更改颜色

public class Data : INotifyPropertyChanged
{
  Color overlayColor = Color.Teal;

  public event PropertyChangedEventHandler PropertyChanged;

  public Data()
  {
  }

  public Color OverlayColor
  {
    get
    {
      return overlayColor;
    }
    set
    {
      overlayColor = value;
      NotifyPropertyChanged( "OverlayColor" );
    }
  }

  public void ChangeColor()
  {
    if ( OverlayColor != Color.Tomato )
      OverlayColor = Color.Tomato;
    else
      OverlayColor = Color.DarkCyan;
  }

  private void NotifyPropertyChanged( string propertyName )
  {
    if ( PropertyChanged != null )
      PropertyChanged( this, new PropertyChangedEventArgs( propertyName ) );
  }
}

你在这里重申过这个问题吗-?这是相似的,但在这里我想知道的属性。但总的来说,它们都是为了让绑定工作起来。将这些问题联系起来可能是值得的,但要指出它们之间的区别,这样这个问题就不会被当作重复的问题来解决了。你是对的,下次会这样做。