C# 如何设置Winforms控件可绑定的自定义属性?
我有一些属性,比如OverlyColor等,我想绑定到不同类型的实例,但是绑定的数据不会改变 我用这个: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接口。更改绑定对象时,
[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 ) );
}
}
你在这里重申过这个问题吗-?这是相似的,但在这里我想知道的属性。但总的来说,它们都是为了让绑定工作起来。将这些问题联系起来可能是值得的,但要指出它们之间的区别,这样这个问题就不会被当作重复的问题来解决了。你是对的,下次会这样做。