2

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

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

textBox.DataBindings.Add("Text",myBindingList,"PropertyOfObjectOfBindingList")

使用我的自定义属性“值”,这个东西不起作用(对象没有得到更新)。

我应该用我的自定义控件实现什么以使其正常工作?我已经实现了 INotifyPropertyChanged,但它不起作用。

我只想让这条线工作:

customControl.DataBindings.Add("CustomProperty",myBindingList,"PropertyOfObjectOfBindingList")

编辑1:

我在网上阅读了这个:http: //kbalertz.com/327413/control-using-Visual.aspx但是目前对我不起作用,也许我做错了什么

4

3 回答 3

1

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

customControl.DataBindings.Add("CustomProperty", list, "BoundObjectProperty", 
    false, DataSourceUpdateMode.OnPropertyChanged);
于 2011-05-20T12:57:35.447 回答
0

也许在自定义控件中实现复杂数据绑定文章会有所帮助。

于 2011-05-20T11:56:56.520 回答
0

我自己解决了这个问题:

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

public event EventHandler CustomPropertyChanged;

足以使一切正常。显然,当您的财产发生变化时,您必须调用它

编辑1:

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

我目前找不到解决此问题的方法。

于 2011-05-20T13:23:47.040 回答