3
我有一些像OverlayColor等屬性,我想要綁定到不同類型的實例,但綁定的數據只是不會改變。如何在Winforms控件上設置自定義屬性是否可綁定?
我用這個:
[Bindable (true)]
public Color OverlayColor { get; set; }
的用戶界面的變化而不是數據綁定。綁定數據的屬性名稱爲Color。
我有一些像OverlayColor等屬性,我想要綁定到不同類型的實例,但綁定的數據只是不會改變。如何在Winforms控件上設置自定義屬性是否可綁定?
我用這個:
[Bindable (true)]
public Color OverlayColor { get; set; }
的用戶界面的變化而不是數據綁定。綁定數據的屬性名稱爲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));
}
}
有你在這裏重申這個問題 - http://stackoverflow.com/questions/1634265/why-winforms-button-text-works-for-databinding-but-not-imagekey? – ChrisF
它是相似的,但在這裏我想知道的屬性。但總的來說,他們都是爲了獲得約束力的工作。 –
這可能是值得鏈接的問題,但指出了差異,所以這一個不會作爲重複關閉。 – ChrisF