C# Winform:将自定义控件属性绑定到BindingList

C# Winform:将自定义控件属性绑定到BindingList,c#,winforms,binding,bindinglist,C#,Winforms,Binding,Bindinglist,我正在尝试创建从自定义控件到BindingList中对象的绑定 使用文本框时,我可以轻松地书写 textBox.DataBindings.Add("Text",myBindingList,"PropertyOfObjectOfBindingList") 对于我的自定义属性“Value”,这个东西不起作用(对象不会得到更新) 我应该用自定义控件实现什么才能使其工作?我已经实现了INotifyPropertyChanged,但它不起作用 我只想让这句话起作用: customControl.Data

我正在尝试创建从自定义控件到BindingList中对象的绑定

使用文本框时,我可以轻松地书写

textBox.DataBindings.Add("Text",myBindingList,"PropertyOfObjectOfBindingList")
对于我的自定义属性“Value”,这个东西不起作用(对象不会得到更新)

我应该用自定义控件实现什么才能使其工作?我已经实现了INotifyPropertyChanged,但它不起作用

我只想让这句话起作用:

customControl.DataBindings.Add("CustomProperty",myBindingList,"PropertyOfObjectOfBindingList")
编辑1:


我是在网上读到这篇文章的:然而,它目前对我不起作用,也许我做错了什么

也许这篇文章会有所帮助。

既然你说你的绑定对象没有得到更新(我假设从控件->对象更改),但它绑定正确,也许这会有帮助:

customControl.DataBindings.Add("CustomProperty", list, "BoundObjectProperty", 
    false, DataSourceUpdateMode.OnPropertyChanged);

我自己解决了这个问题:

虽然我链接的文章是一个很好的建议,但有一个错误的部分;您不必使用PropertyChangedEventHandler在自定义类中创建事件,只需使用EventHandler即可

public event EventHandler CustomPropertyChanged;
足够让一切顺利。很明显,当您的属性发生变化时,您必须调用它

编辑1:

我发现了一件坏事,在文本框上,如果控件失去焦点,bindinglist就会更新,而在我的自定义控件上,只有当我更改listbox中的选定项时,才会发生这种情况


目前我还没有找到解决这个问题的方法。

我不确定它是否适合我的问题,我读了它,但没有看到任何数据绑定。添加任何位置,只更改数据源和类似的内容,但正如我所说的,我已经使用绑定列表作为数据源,效果很好。我的问题是关于控件我现在有另一个问题,如果我想在这种情况下使用自定义集合作为数据源,该怎么办?我创建了一个自定义集合,但未激发事件。有什么建议吗?请关注此问题以了解更多详细信息: