gpt4 book ai didi

c# - 如何在可绑定(bind)的 Winforms 控件上设置自定义属性?

转载 作者:行者123 更新时间:2023-11-30 15:12:09 24 4
gpt4 key购买 nike

我有一些属性,如 OverlayColor 等,我想绑定(bind)到不同类型的实例,但绑定(bind)的数据并没有改变。

我用这个:

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

UI 改变但绑定(bind)数据不变。绑定(bind)数据的属性名称是 Color。

最佳答案

据我了解Bindable属性是为当前控件添加(DataBindings)下的属性。

要解决 OverlayColor 未在绑定(bind)上更新的问题,您必须在要绑定(bind)到的对象上实现 INotifyPropertyChanged 接口(interface)。当绑定(bind)对象发生更改时,您必须引发 NotifyPropertyChanged 事件。

在下面的示例中,我创建了一个数据类,我用它来绑定(bind)并调用 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 ) );
}
}

关于c# - 如何在可绑定(bind)的 Winforms 控件上设置自定义属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1634101/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com