簡體   English   中英

如何在Winforms控件上設置自定義屬性可綁定?

[英]How to set custom properties on a Winforms control bindable?

我有一些像OverlayColor等屬性,我想綁定到不同類型的實例,但綁定數據不會改變。

我用這個:

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

UI更改但不更改綁定數據。 綁定數據的屬性名稱為Color。

據我所知,Bindable屬性是在當前控件的(DataBindings)下添加屬性。

若要解決在綁定上未更新OverlayColor的問題,必須在要綁定的對象上實現INotifyPropertyChanged接口。 綁定對象更改后,您必須提升NotifyPropertyChanged事件。

在下面的示例中,我創建了一個Data類,我用它來綁定並調用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 ) );
  }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM